Pandas dataframe 按 ID 合并文本行
Pandas dataframe Merge text rows group by ID
我有一个数据框如下:
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 子句将 Text
合并到 Python 中的 ID
。
我想通过分组 ID
来合并“Text
”列。
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 中的文本,但它也没有给出所需的结果。
试试 groupby
和 sum
。从您的错误消息和 df.info()
的输出来看,似乎在 Text
列中混合了数据类型和 NaN
。我建议使用 fillna('')
将 NaN
转换为空字符串,然后使用 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)
这应该return
ID Date
1 01/01/2019 abcdpqrs
2 01/02/2019 abcdxyze
我有一个数据框如下:
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 子句将 Text
合并到 Python 中的 ID
。
我想通过分组 ID
来合并“Text
”列。
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 中的文本,但它也没有给出所需的结果。
试试 groupby
和 sum
。从您的错误消息和 df.info()
的输出来看,似乎在 Text
列中混合了数据类型和 NaN
。我建议使用 fillna('')
将 NaN
转换为空字符串,然后使用 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)
这应该return
ID Date
1 01/01/2019 abcdpqrs
2 01/02/2019 abcdxyze