熊猫不导出所有列

我是熊猫的新手,我已经谷歌了我的问题,但没有得到任何帮助。


问题陈述:当我在其中一列上执行后保存最终的CSV时,我的CSV只显示一列,但我希望所有列都在我的最终CSV中。df.to_csv()cumsum()amountamount


示例数据:


*------------------------------------------------*

|effective_date | account_id | currency | amount |

*------------------------------------------------*

|   12/26/19          1        USD         50    |

|   12/27/19          1        USD         70    |

|   11/06/19          2        USD         90    |

|   11/07/19          2        USD         30    |

*------------------------------------------------*

使用Jupyter Notebook的My Code:


import pandas as pd

df = pd.read_csv('payments.csv', index_col=0)


df['effective_when'] = pd.to_datetime(df['effective_when'])


df = df.groupby(['account_id', 'currency', 'effective_date']).sum().groupby(level=[0]).cumsum()


df.to_csv ('cumulativePayments.csv')

当前结果:


*------*

|amount|

*------*

| 50   |

| 120  |

| 90   |

| 120  |

*------*

预期成果:


*------------------------------------------------*

|effective_date | account_id | currency | amount |

*------------------------------------------------*

|   12/26/19          1       USD          50    |

|   12/27/19          1       USD          120   |

|   11/06/19          2       USD          90    |

|   11/07/19          2       USD          120   |

*------------------------------------------------*

我怎样才能做到这一点?


慕田峪7331174
浏览 101回答 1
1回答

冉冉说

我认为您可以拆分代码以使用聚合进行创建,然后重新设计由累积总和填充的列:DataFramesumamountdf = pd.read_csv('payments.csv', index_col=0)df['effective_date'] = pd.to_datetime(df['effective_date'])df = df.groupby(['account_id', 'currency', 'effective_date'], as_index=False).sum()df['amount'] = df.groupby('account_id')['amount'].cumsum()print (df)   account_id currency effective_date  amount0           1      USD     2019-12-26      501           1      USD     2019-12-27     1202           2      USD     2019-11-06      903           2      USD     2019-11-07     120df.to_csv('cumulativePayments.csv')另一个想法应该是将第一列转换为日期时间,并且对于写入文件,请删除默认索引值:df = pd.read_csv('payments.csv', parse_dates=[0])df = df.groupby(['account_id', 'currency', 'effective_date'], as_index=False).sum()df['amount'] = df.groupby('account_id')['amount'].cumsum()df.to_csv('cumulativePayments.csv', index=False)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python