考虑以下数据:
data = [
{
"Account": "Cash",
"amount": 10,
"direction": "debit",
},
{
"Account": "Cash",
"amount": 10,
"direction": "credit",
}
]
df = pd.DataFrame.from_dict(data)
df.pivot(index="Account", columns="direction", values="amount")
pivot()
的值输出如下:
direction credit debit
Account
Cash 10 10
然而,我真正想要的是类似于:
direction credit debit
Account
Cash 10
Cash 10
也就是说,我希望所有的“贷项”行作为“借项”放在单独的一行上,以便进行格式化(即,当使用to_table()
或to_csv()
时)。
我尝试过使用to_dict()
,操作结果,并使用from_dict()
重新创建一个 Dataframe ,但这对于多索引来说变得相当棘手。
我能想到的唯一方法是将数据作为字典,手动格式化并输出。在pandas中有没有一种方法可以实现这种分离?
1条答案
按热度按时间4urapxun1#
让我们试试
set_index(..., append=True)
和unstack
:使用
append=True
,我们可以使用现有索引区分每个“Cash”行,以便在旋转/取消堆栈时它们不会折叠成一行