【问题标题】:Python append new column from another csvPython从另一个csv追加新列
【发布时间】:2021-02-16 03:27:45
【问题描述】:

我每天都会用这两列(没有标题)生成一个 csv(被覆盖)。第一个是客户数量,第二个是每日销售额

963840      3
18065729    2
255657800   4
338082549   183
364915832   2
392633366   14
450647013   3

我需要在一个新的 csv 中附加每日销售,每天在一个新列中了解演变

963840      3       5     6    20
18065729    2       4     7     8   
255657800   4       7
338082549   183     220
364915832   2       5
392633366   14      14
450647013   3       4

提前致谢

【问题讨论】:

    标签: python pandas csv append


    【解决方案1】:

    我试着把它写成符号,这样你就可以按照代码加载你的 CSV 文件并合并它们:

    basedf = pd.read_csv('firstday.csv')
    
    days = ['day2.csv','day3.csv','day4.csv','day5.csv']
    for day in days:
        df = pd.read_csv(day)
        basedf = basedf.merge(df,on='clientid',how='left')
    

    【讨论】:

    • 谢谢,源 csv 总是一样的,我覆盖了上面的数据。我想创建一个任务来自动化这个
    • 所以你可以在每次想要嵌入基础数据时加载这个文件
    • 我用其他脚本在 db 上进行选择来生成源 csv
    【解决方案2】:

    如果您在不同的日子有不同的客户,也许外部联接会更好。

    import pandas as pd
    day1 = pd.DataFrame({'id': ['963840', '18065729', '255657800', '338082549','364915832','392633366','450647013'],
                        'day1data': [3,2,4,183,2,14,3]})
    day2 = pd.DataFrame({'id': ['963840', '18065729', '255657800', '338082549','364915832','392633366','450647013'],
                        'day2data': [5,4,7,220,5,14,4]})
    
    print(day1.merge(day2, on='id', how='outer'))
    

    Ant 结果如下:

              id  day1data  day2data
    0     963840         3         5
    1   18065729         2         4
    2  255657800         4         7
    3  338082549       183       220
    4  364915832         2         5
    5  392633366        14        14
    6  450647013         3         4
    
    

    另外如果你想保存为csv,你可以使用to_csv()方法。

    day1.merge(day2, on='id', how='outer').to_csv('merged_data.csv',sep=';')
    

    【讨论】:

    • 是的。您可以使用 pandas.read_csv() 命令从 csv 中获取数据,并使用 to_csv 命令保存为 csv。
    • 谢谢,我怎样才能从一个 csv (source.csv) 中获取并每天在 Report.csv 中写一个新列?只会追加第二列,并且该列没有标题
    猜你喜欢
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    相关资源
    最近更新 更多