Pandas groupby并将某些列保存到CSV [重复]

Posted

技术标签:

【中文标题】Pandas groupby并将某些列保存到CSV [重复]【英文标题】:Panads groupby and save certain columns to CSV [duplicate] 【发布时间】:2018-09-14 08:13:43 【问题描述】:

我正在读取包含 Employer、City、State、Zipcode 和 Jobtitle 列的 CSV。

要求是按 Employer + City 分组,统计结果并将四列(Employer、City、Zipcode 和 Count)写入 CSV。

这是我到目前为止所做的,

data = pd.read_csv("jobs.csv")
data.groupby(["Employer", "City"]).count()

这给了我:

Employer    City       State    Zipcode   Jobtitle 
Emp1      Cincinnati     1        1          1   
Emp2      Delaware      14        0         14   
Emp3      Akron          1        0          1 

我想要的是:

Employer    City       Zipcode    Jobcount
Emp1      Cincinnati    12345         1  
Emp2      Delaware      22112        14  
Emp3      Akron         34567         1 

Jobcount 显示 Employer + City 组合的工作数量。

【问题讨论】:

12345 是邮政编码。 您是否希望每个城市/雇主有 1 个邮政编码? 看起来你需要data.groupby(['Employer', 'City', 'Zipcode'])['Jobcount'].count() .. 如副本中所述。 这不是一个重复的问题。 data.groupby(['Employer', 'City', 'Zipcode'])['Jobcount'].count() 给出错误 KeyError: 'Column not found: Jobcount' 因为你的df中的列是Jobtitle 【参考方案1】:

如果您希望每个员工/城市有 1 个邮政编码,您可以这样做:

data.groupby(['Employer', 'City', 'Zipcode']).agg('Jobtitle': 'size')
data.columns = ['Employer', 'City', 'Zipcode', 'Jobcount']

【讨论】:

这对我有用,只需稍作修改。谢谢。

以上是关于Pandas groupby并将某些列保存到CSV [重复]的主要内容,如果未能解决你的问题,请参考以下文章

pandas如何对value列数据进行分组groupby?

在csv,pandas中的groupby之后创建自定义列

pandas - 如何仅将 DataFrame 的选定列保存到 HDF5

与 groupBy 聚合后将 pyspark 数据帧保存为 csv 文件

将groupBy聚合为csv文件后保存pyspark数据帧

Pandas 按 groupby 求和,但不包括某些列