使用 groupby 作为用户 ID 并组合字符串
Using groupby for user id and combining strings
我在预处理数据时遇到问题。我的数据看起来像
我想按一个表示名为帐号的用户的字段进行分组,并且我想创建一个新字段,该字段是每个帐号的所有客户事件类型值的串联。
我试过这个:
df_by_accnum = df.groupby('Account Number')[['Customer Event Type']].agg(','.join).reset_index()
但它会导致所有列名被连接起来而不是 hte 值 (https://i.imgur.com/VR5JjC3.png)
在解决这个问题时我能得到一些帮助吗?谢谢
通过尝试和错误我发现这可能是由于列的类型 客户事件类型。我猜它可能包含非字符串值,join 假设,并且出于某种原因,使用了列名。
尝试创建一个新列,将 客户事件类型 转换为字符串并使用该列:
>>> d = {'Account Number': [1, 2, 3, 1], 'Customer Event Type': [1, 1, 2, 2]}
>>> df = pd.DataFrame(data=d)
>>> df['Customer Event Type str'] = df['Customer Event Type'].astype(str)
>>> df.groupby('Account Number')[['Customer Event Type str']].agg(','.join).reset_index()
Account Number Customer Event Type str
0 1 1,2
1 2 1
2 3 2
而使用数字列会产生:
>>> df.groupby('Account Number')[['Customer Event Type']].agg(','.join).reset_index()
Account Number Customer Event Type
0 1 Account Number,Customer Event Type,Customer Ev...
1 2 Account Number,Customer Event Type,Customer Ev...
2 3 Account Number,Customer Event Type,Customer Ev...
希望对您有所帮助。如果您发现此行为的原因,请告诉我们。谢谢!
我在预处理数据时遇到问题。我的数据看起来像
我想按一个表示名为帐号的用户的字段进行分组,并且我想创建一个新字段,该字段是每个帐号的所有客户事件类型值的串联。
我试过这个:
df_by_accnum = df.groupby('Account Number')[['Customer Event Type']].agg(','.join).reset_index()
但它会导致所有列名被连接起来而不是 hte 值 (https://i.imgur.com/VR5JjC3.png)
在解决这个问题时我能得到一些帮助吗?谢谢
通过尝试和错误我发现这可能是由于列的类型 客户事件类型。我猜它可能包含非字符串值,join 假设,并且出于某种原因,使用了列名。
尝试创建一个新列,将 客户事件类型 转换为字符串并使用该列:
>>> d = {'Account Number': [1, 2, 3, 1], 'Customer Event Type': [1, 1, 2, 2]}
>>> df = pd.DataFrame(data=d)
>>> df['Customer Event Type str'] = df['Customer Event Type'].astype(str)
>>> df.groupby('Account Number')[['Customer Event Type str']].agg(','.join).reset_index()
Account Number Customer Event Type str
0 1 1,2
1 2 1
2 3 2
而使用数字列会产生:
>>> df.groupby('Account Number')[['Customer Event Type']].agg(','.join).reset_index()
Account Number Customer Event Type
0 1 Account Number,Customer Event Type,Customer Ev...
1 2 Account Number,Customer Event Type,Customer Ev...
2 3 Account Number,Customer Event Type,Customer Ev...
希望对您有所帮助。如果您发现此行为的原因,请告诉我们。谢谢!