gpt4 book ai didi

r - 多行到单个单元格空间分隔 Pandas 中的值,分组依据

转载 作者:行者123 更新时间:2023-12-03 23:18:17 24 4
gpt4 key购买 nike

我这里有一个类似于 df1 的数据集

    df1 = pd.DataFrame({'id':[1,1,2,2,2],
'value':[67,45,7,5,9]})

id value
1 67
1 45
2 7
2 5
2 9

我想把它带到这种形式。一个单元格中与该 id 对应的所有值,以空格分隔。
   id values
1 67 45
2 7 5 9

这是我的代码
df2 = pd.DataFrame(df1['id'].unique())
df2.columns=['id']
df2['values']=np.nan

for i in df2['id']:
s=''
for k in df1[df1['id']==i]['value']:
s=s+' '+str(k)
df2.loc[df2['id']==i,'values']=s.lstrip()
print(df2)

有没有更pythonic的方法来做到这一点。我有 70000 个唯一 ID,每个 ID 可能有 1 到 20 个不等的值

我在用
python 蟒3.5
Pandas 0.20.1
NumPy 1.12.1
窗口 10

另外,我们如何在 R 中复制相同的内容

最佳答案

将 'value' 列从 int 转换为 string,然后执行 groupby 'id' 和 apply str.join 功能:

# Convert 'value' column to string.
df1['value'] = df1['value'].astype(str)

# Perform a groupby and apply a string join.
df1 = df1.groupby('id')['value'].apply(' '.join).reset_index()

结果输出:
   id  value
0 1 67 45
1 2 7 5 9

关于r - 多行到单个单元格空间分隔 Pandas 中的值,分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44222500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com