【问题标题】:Group by Column in Dataframe and create seperate csv for all the group在 Dataframe 中按列分组并为所有组创建单独的 csv
【发布时间】:2018-06-23 09:30:13
【问题描述】:

我有一个 100kb 的巨大 CSV 文件,其中包含记录。如下示例

city         employee

california   jhon
delhi        kumar
us           raj
california   brakers
us           kroja
... 

所以我想将它们分组并存储在单独的 CSV 文件中

我上面例子的输出结果是

city         employee

california   jhon
california   brakers
delhi        kumar
us           raj
us           kroja

我是否必须在数据框中按城市排序/分组,然后有一个 for 循环并遍历整个数据框?

她是我的密码

New_data=pd.read_csv("citynames.csv",encoding = "ISO-8859-1") 
Aftergrouping_data=New_data.groupby("city")
#print(Aftergrouping_data.groups)

for name,group in Aftergrouping_data:
    print(name)
    group.to_csv("aftergrouping.csv".format(name), index=False)

问题在于它覆盖了 for 循环中的值并显示最后一组数据。但我想要文件中的所有分组数据。

提前谢谢

【问题讨论】:

    标签: python python-3.x pandas group-by pandas-groupby


    【解决方案1】:

    从你的描述来看,两个方面似乎很清楚:

    1. 您想要排序数据而不是分组数据。您可以在没有 groupby 对象的情况下对数据进行排序。
    2. 您希望将数据框导出到单个 csv 文件。此任务无需使用迭代。

    您可以简单地使用sort_values 后跟to_csv

    # read file
    df = pd.read_csv('citynames.csv', encoding='ISO-8859-1')
    
    # sort by 'city', ascending
    df = df.sort_values('city')
    
    # export to csv
    df.to_csv('citynames_out.csv', index=False)
    

    【讨论】:

    • 非常感谢先生的帮助。还有一个问题Aftergrouping_data=New_data.groupby("city") 然后我执行numpy 作为Aftergrouping_data.agg(np.size) 知道问题是如何将结果存储在 csv 文件中
    • @lavakumar,抱歉,我不知道为什么您需要groupby 来完成this 问题中描述的任务,也不知道您为什么需要按大小聚合。我建议您向separate question 询问不同的要求,清楚地显示您想要的输出。
    猜你喜欢
    • 2017-02-08
    • 2020-11-30
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多