gpt4 book ai didi

python - 更新 Pandas 数据框并在数据存在时更新值

转载 作者:太空宇宙 更新时间:2023-11-04 02:55:52 25 4
gpt4 key购买 nike

我有一个这样的 csv 文件:

word, tag, counter
I, Subject, 1
Love, Verb, 3
Love, Adjective, 1

我想创建一个数据框,其中列是单词和标签列表,如下所示:

Word Subject  Verb  Adjective
I 1 0 0
Love 0 3 1

我如何设法用 pandas 做到这一点?

最佳答案

您可以使用 pivot :

df = df.pivot(index='word', columns='tag', values='counter').fillna(0).astype(int)
print (df)
tag Adjective Subject Verb
word
I 0 1 0
Love 1 0 3

另一种解决方案 set_indexunstack :

df = df.set_index(['word','tag'])['counter'].unstack(fill_value=0)
print (df)
tag Adjective Subject Verb
word
I 0 1 0
Love 1 0 3

但是如果得到:

ValueError: Index contains duplicate entries, cannot reshape

然后需要通过 pivot_table 中的一些 aggfunc 进行聚合:

print (df)
word tag counter
0 I Subject 1
1 Love Verb 3
2 Love Adjective 1 <-duplicates for Love and Adjective
3 Love Adjective 3 <-duplicates for Love and Adjective

df = df.pivot_table(index='word',
columns='tag',
values='counter',
aggfunc='mean',
fill_value=0)
print (df)
tag Adjective Subject Verb
word
I 0 1 0
Love 2 0 3

另一种使用 groupbyunstack 的解决方案:

df = df.groupby(['word','tag'])['counter'].mean().unstack(fill_value=0)
print (df)
tag Adjective Subject Verb
word
I 0 1 0
Love 2 0 3

关于python - 更新 Pandas 数据框并在数据存在时更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42417837/

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