如果我有以下DataFrame ...
code
player_id
223336 4
223336 5
223336 4
225987 2
225987 3
225987 4
Run Code Online (Sandbox Code Playgroud)
如何将"代码"列合并为一个字符串,以便结果看起来像......
code
player_id
223336 454
225987 234
Run Code Online (Sandbox Code Playgroud)
谢谢!
你可以
astype),groupby根据索引对这些值进行分组,最后''.joinimport pandas as pd
df = pd.read_table('data', sep='\s+')
df = df.set_index('player_id')
strjoin = ''.join
print(df['code'].astype(str).groupby(df.index).agg(strjoin))
Run Code Online (Sandbox Code Playgroud)
产量
player_id
223336 454
225987 234
Name: code, dtype: object
Run Code Online (Sandbox Code Playgroud)
另一种选择是
groupby 指数,join_digits,将值乘以10的幂,然后对结果求和.astype(str)将int转换为字符串def join_digits(series):
return (series * 10**np.arange(len(series)-1, -1, -1)).sum()
df['code'].groupby(df.index).agg(join_digits).astype(str)
Run Code Online (Sandbox Code Playgroud)
产量
player_id
223336 454
225987 234
Name: code, dtype: int64
Run Code Online (Sandbox Code Playgroud)
但是,请注意,如果ints df['code']不是单位数字,则使用整数计算将得到与第一种方法不同的结果.而且,如果最左边的数字为零,则将丢弃零.
| 归档时间: |
|
| 查看次数: |
331 次 |
| 最近记录: |