gpt4 book ai didi

python - 如何修改数据框以便每行存储其重复行的所有数据?

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:54 25 4
gpt4 key购买 nike

我的数据框包含三列( IDkeyword )

   ID  key   word
0 1 A Apple
1 1 B Bug
2 2 C Cat
3 3 D Dog
4 3 E Exogenous
5 3 E Egg

我想创建额外的keyword列 - 根据需要 - 将数据存储在 key 中和word当存在重复的行时的列 IDs

这是输出的片段

   ID  key_0  key_1   word_0   word_1  
0 1 A B Apple Bug

注意:在上面的输出中,ID1在数据框中出现两次,因此 "key""B"与重复的 ID 相关联将存储在新列 "key_1" 中。字Bug在重复项中找到 ID1将存储在新列 word_1 中以及。

完整的输出应如下所示:

    ID  key_0  key_1   key_2   word_0        word_1    word_2
0 1 A B NaN Apple Bug NaN
1 2 C NaN NaN Cat NaN NaN
2 3 D E E Dog Exogenous Egg

请注意,在完整的输出中,ID3已经重复了三遍。 key第二次重复 "E"将存储在"key_1"下列和第三个重复"E"将存储在新列 "key_2" 中。这适用于单词 "Exogenous""Egg"以同样的方式。

我找到了Alex's解决方案很有用,但它仅适用于 key栏目:

df.groupby('ID')['key'].apply(
lambda s: pd.Series(s.values, index=['key_%s' % i for i in range(s.shape[0])])).unstack(-1)

知道如何使 lambda 函数同时适用于 keyword列?

谢谢,

最佳答案

df2 = df.set_index('ID').groupby(level=0).apply(lambda df: df.reset_index(drop=True)).unstack()
df2.columns = df2.columns.set_levels((df2.columns.levels[1]).astype(str), level=1)
df2.columns = df2.columns.to_series().str.join('_')
df2

enter image description here

关于python - 如何修改数据框以便每行存储其重复行的所有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38753631/

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