【发布时间】:2018-04-06 23:17:39
【问题描述】:
我有一个 Pandas 系列,其中包含一个索引列和第二列 0。
索引列包含几种语言的缩写。此索引列中的两个不同值是“英语”的“en”和“英国英语”的“en-gb”。此列中还有许多其他值,包括“es”表示“西班牙语”,“fr”表示“法语”等等。
所以这个系列看起来像这样:
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
编辑: 建议告诉我修改原始 DataFrame。这个建议的问题是我没有传统的数据框作为我的 Pandas 系列的来源。
相反,我的 Pandas 系列的起源是一个字典列表,在这些字典中,其中一个键是另一个字典。
所以要清楚,我有:数千个字典的列表。
每个字典的键之一是“用户”。
“用户”键的值是另一个字典。
在第二个字典中有一个键“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'},
]
【问题讨论】:
-
你想分别保留两个
es吗? -
啊,抱歉,这是我在这里创建表时犯的一个错误——我已经只有一个 es 实例。
标签: python pandas slice series