熊猫将字符串与groupby结合在一起

时间:2020-04-30 08:06:41

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

我正在尝试在数据框中组合字符串。数据框如下所示:

0          code   text1
1        507489   text2
2        507489   text3
3        506141   text4
4        506141   text5
5        504273   text6

我当前的代码:

import pandas as pd

df = pd.read_csv("location.csv", header=None, delimiter=';', dtype='unicode', nrows=100)
new_header = df.iloc[0] 
df = df[1:] 
df.columns = new_header

df.groupby('code').agg('->'.join).reset_index()

df.to_csv (r'new_location\export_dataframe.csv', index = False, header=True)
print(df)

但是我没有得到预期的结果。在我期望的情况下,输出看起来与输入相同:

0          code   text1
1        507489   text2->text3
2        506141   text4->text5
3        504273   text6

这很新,所以我必须犯一些简单的错误。

产生相同结果的数据框:

testf = {'code': ['1','2','2','4'],
        'text': [22000,25000,27000,35000]
        }

df = pd.DataFrame(testf, columns = ['code', 'text'])

1 个答案:

答案 0 :(得分:2)

似乎您忘记了分配回去,也被header=None中的read_csv删除了,因为文件中的标题是用于DataFrame中列名称的标题:

import pandas as pd

df = pd.read_csv("location.csv", sep=';', dtype='unicode', nrows=100)

df = df.groupby('code').agg('->'.join).reset_index()
print (df)
     code         text1
0  504273         text6
1  506141  text4->text5
2  507489  text2->text3

df.to_csv (r'new_location\export_dataframe.csv', index = False)