我有一个数据框,如下所示:
ID Date Text
1 01/01/2019 abcd
1 01/01/2019 pqrs
2 01/02/2019 abcd
2 01/02/2019 xyze
我想使用group by子句在Python中合并Text
和ID
。
我想通过对Text
进行分组来合并'ID
'列。
ID Date Text
1 01/01/2019 abcdpqrs
2 01/02/2019 abcdxyze
我想用Python做到这一点。
我尝试了以下代码块,但没有用:
groups = groupby(dataset_new, key=ID(1))
dataset_new.group_by{row['Reference']}.values.each do |group|
puts [group.first['Reference'], group.map{|r| r['Text']} * ' '] * ' | '
end
我还尝试使用公式在excel中合并文本,但是它也没有提供所需的结果。
答案 0 :(得分:1)
尝试groupby
和sum
。从错误消息和df.info()
的输出来看,似乎NaN
列中混合了dtypes和Text
。我建议使用NaN
将fillna('')
转换为空字符串,然后使用astype(str)
将列中的所有元素转换为字符串。
df = pd.DataFrame({'ID': [1,1,2,2],
'Date': ['01/01/2019', '01/01/2019', '01/02/2019', '01/02/2019'],
'Text': ['abcd', 'pqrs', 'abcd', 'xyze']})
df['Text'] = df['Text'].fillna('').astype(str)
df_grouped = df.groupby(['ID', 'Date'])['Text'].sum()
print(df_grouped)
这应该返回
ID Date
1 01/01/2019 abcdpqrs
2 01/02/2019 abcdxyze