当两行的值不同时,如何合并/组合一个系列中两行的值?

2024-04-24 13:16:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫系列,它包含一个索引列和一个第二列0。你知道吗

索引列包含几种语言的缩写。此索引列中的两个不同值是“en”表示“English”和“en gb”表示“British English”。此列中还有许多其他值,包括“es”表示“Spanish”,fr表示“French”,等等。你知道吗

所以这个系列看起来像这样:

Index      0

en         42000
en-gb      500
es         320
und        143
fr         50

列0包含一个值,表示索引列中的每个语言值在原始数据帧中出现的次数。你知道吗

我要做的是将“en”和“en gb”的两个值合并起来,这样它们就可以算作一个值了。

我想要一个像这样的新系列:

Index      0

en         42500
es         320
und        143
fr         50

编辑:建议告诉我修改原始数据帧。这个建议的问题是我没有一个传统的数据帧作为我的熊猫系列的源。你知道吗

相反,我的熊猫系列的起源是一个字典列表,在这些字典中,一个键是另一个字典。你知道吗

所以要说清楚的是,我有一份上千本字典的清单。你知道吗

每个字典的一个键是“user”

“user”键的值是另一个字典。你知道吗

在第二个字典中有一个键“lang”和诸如“en”、“en-gb”、“es”、“fr”等值。你知道吗

所以从视觉上看,我猜我的原始数据的样本是这样的:

list_of_things = [
{'id':4444, 'user': {'lang':'en', 'gibberish':'*#(#($&'}, 'location':'USA'},

{'id':555, 'user': {'lang':'fr', 'gibberish':'*#(#($&'}, 'location':'France'}, 

{'id':666, 'user': {'lang':'en-gb', 'gibberish':'*#(#($&'}, 'location':'Great Britain'}, 

{'id':777, 'user': {'lang':'en', 'gibberish':'*#(#($&'}, 'location':'USA'}, 

{'id':888, 'user': {'lang':'en', 'gibberish':'*#(#($&'}, 'location':'USA'}, {'id':999, 'user': {'lang':'en', 'gibberish':'*#(#($&'}, 'location':'USA'},

{'id':888, 'user': {'lang':'en', 'gibberish':'*#(#($&'}, 'location':'USA'}, {'id':999, 'user': {'lang':'en', 'gibberish':'*#(#($&'}, 'location':'USA'},
{'id':888, 'user': {'lang':'en', 'gibberish':'*#(#($&'}, 'location':'USA'}, {'id':999, 'user': {'lang':'es', 'gibberish':'*#(#($&'}, 'location':'Spain'},
{'id':888, 'user': {'lang':'en-gb', 'gibberish':'*#(#($&'}, 'location':'Great Britain'}, {'id':999, 'user': {'lang':'und', 'gibberish':'*#(#($&'}, 'location':'Unknown'},
]

Tags: 语言idlang原始数据字典esenglishlocation