我有一个df,它包含一列['mjtheme\u namecode'],它是字典形式,包含一个代码和一个名称。这些代码都有数字,但有些名字不见了。我想根据具有相同代码的其他对来填充缺少的名称值。以下是有关的df列:
import pandas as pd
import json
import numpy as np
from pandas.io.json import json_normalize
df = pd.read_json('data/world_bank_projects.json')
print(df['mjtheme_namecode'].head(15))
0 [{'code': '8', 'name': 'Human development'}, {...
1 [{'code': '1', 'name': 'Economic management'},...
2 [{'code': '5', 'name': 'Trade and integration'...
3 [{'code': '7', 'name': 'Social dev/gender/incl...
4 [{'code': '5', 'name': 'Trade and integration'...
5 [{'code': '6', 'name': 'Social protection and ...
6 [{'code': '2', 'name': 'Public sector governan...
7 [{'code': '11', 'name': 'Environment and natur...
8 [{'code': '10', 'name': 'Rural development'}, ...
9 [{'code': '2', 'name': 'Public sector governan...
10 [{'code': '10', 'name': 'Rural development'}, ...
11 [{'code': '10', 'name': 'Rural development'}, ...
12 [{'code': '4', 'name': ''}]
13 [{'code': '5', 'name': 'Trade and integration'...
14 [{'code': '6', 'name': 'Social protection and ...
Name: mjtheme_namecode, dtype: object
我知道我可以把这个列变成一个单独的df,然后是ffill,但是我想我必须重新索引,所以我不认为我可以在那之后把它放回原位。我在想,理想情况下,我会制作一个包含代码和名称的dict项的列表(没有重复项),然后使用该列表在for循环中遍历字典,其中name成为我创建的非重复列表中的匹配值。这有道理吗?不知道该怎么办。你知道吗
您可以采用类似的方法创建新的数据帧,但随后会转换回:
使用列表理解将所有内容放在一起:
如您所见,最后一行(第12行)已正确填写,其他行也已正确填写,您可以将其重新分配给原始数据帧。你知道吗
相关问题 更多 >
编程相关推荐