从数据框中写入多个CSV文件

时间:2019-07-31 15:57:44

标签: python-3.x pandas csv

我正在尝试使用python将每月的万事达卡对帐单加载到我的企业的csv文件中。然后创建一个程序,以发送内部逐项语句以根据每个用户当月的支出发送给每个用户。如何根据卡号写入多个.csv文件。

我是编程的新手,所以我不确定如何写入多个csv文件。我可以做一个文件,但是我不确定如何进行下一步。

import pandas as pd
import csv
df = pd.read_csv("/users/user/documents/data.csv")
df['Total'] = df.groupby('Card Number')['Posted Amount'].transform('sum')

body = df.groupby(['Card Number','Cardholder Name','Email','Total','Merchant Name'])['Posted Amount'].agg('sum')

当我点击print(body)时,会显示以下信息

cardnumber,name,email,total,merchant_name,posted_amount
0001,user1,user1@email.com,1531,merchant 1,1530
                                merchant 2,1531
0002,user2,user2@tmail.com,500,merchant 5,200
                               merchant 6,250
                               merchant 7,50 

如何编写多个csv文件,以每个卡号或名称分隔?我在这方面还比较陌生,所以如果您需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

假设cardnumber是唯一的,并且您的数据框不会太大:

只需遍历所有卡号,然后为特定卡过滤DataFrame。为每个用户分组。然后,将输出保存到例如"Card Data for 0001.csv"

for cn in df.cardnumber.values:
    df_user = df[df.cardnumber == cn]

    # Do your grouping here:
    # ...

    path = "Card Data for " + cn + ".csv"

    df_user.to_csv(path)

请记住,如果您的数据框包含例如50,000个卡号,此代码将创建50,000个文件。