Python列groupby和split
嗨,我在Python数据框中有以下数据:Python列groupby和split,python,python-3.x,dataframe,csv-write-stream,Python,Python 3.x,Dataframe,Csv Write Stream,嗨,我在Python数据框中有以下数据: input_string value Apple 5 Apple 6 Pear 2 Pear 4 Grape 5 Grape 7 我希望将输出写入csv文件,如下所示: input_string,col1,col2 Apple,5,6 Pear,2,4 Grape,5,7 我怎样才能做到这一点?我试着使用分组
input_string value
Apple 5
Apple 6
Pear 2
Pear 4
Grape 5
Grape 7
我希望将输出写入csv文件,如下所示:
input_string,col1,col2
Apple,5,6
Pear,2,4
Grape,5,7
我怎样才能做到这一点?我试着使用分组方式
df_combined_values = (df.groupby('input_string', sort=False)['value'].agg([lambda x: ','.join(map(str, x))]).reset_index())
print(df)
df_combined_values.to_csv(r'C:/someFolder/output_file.csv', index=False, quoting=csv.QUOTE_NONE, encoding='utf8', escapechar='\\')
“打印”命令将删除
input_string <lambda>
0 Apple 5,6
1 Pear 2,4
2 Grape 5,7
输入字符串
0苹果5,6
1梨2,4
2葡萄5,7
但csv文件显示:
input_string,<lambda>
Apple,5\,6
Pear,2\,4
Grape,5\,7
输入字符串,
苹果,5,6
梨,2,4
葡萄,5,7
尝试以下代码:
your_dataframe = pd.DataFrame({'input_string': ['Apple', 'Apple', 'Pear', 'Pear', 'Grape', 'Grape', 'Apple'], 'value':[5,6,2,4,5,7, 10]})
your_dataframe = your_dataframe.groupby('input_string')['value'].apply(list).reset_index()
your_dataframe
for i, row in your_dataframe.iterrows():
for j, v in enumerate(row['value']):
your_dataframe.loc[i, f'col{j + 1}'] = v
del your_dataframe['value']
结果
input_string,col1,col2,col3
Apple,5.0,6.0,10.0
Grape,5.0,7.0,
Pear,2.0,4.0,
你总是有相同的重复次数吗?你在这里试过这个答案吗?非常感谢你!