【发布时间】:2020-10-28 18:59:41
【问题描述】:
当我的 df2, Group2 有第三个项目“B3”时,我得到了我想要的关于 groupby 的内容。当数组长度不同时如何获得输出?
我也很难将所有数据都保存到 CSV,而不仅仅是最后一次迭代。我尝试在循环之前制作 df,然后将其合并,但有些东西不起作用。
import pandas as pd
df1 = pd.DataFrame({'Title': ['A1', 'A2', 'A3', 'B1', 'B2', 'C13'],
'Whole': ['full', 'full', 'full', 'semi', 'semi', 'semi']})
df2 = pd.DataFrame({'Group1': ['A1', 'A2', 'A3'],
'Group2': ['B1', 'B2']})
for column in df2.columns:
d_group = df1[df1.Title.isin(df2[column])]
df = d_group.groupby('Whole')['Whole'].count()\
.rename('Column Name from df2')\
.reindex(['part', 'full', 'semi'], fill_value='-')\
.reset_index()
df.T.to_csv('all_groups2.csv', header=False, index=True)
print(df.T)
期望的输出:
Whole | part | full | semi
--------+---------+----------+----------
Group1 | - | 3 | -
Group2 | - | - | 2
【问题讨论】:
-
目前尚不清楚预期的输出是什么。您能否将您想要的输出发布为表格?
-
完成,如果您在 df2 中将“B3”添加到 Group2,则代码有效
标签: python pandas dataframe for-loop export-to-csv