gpt4 book ai didi

python - Pandas fillna 到空字典

转载 作者:行者123 更新时间:2023-11-28 22:11:00 29 4
gpt4 key购买 nike

我有一个带有“元数据”列的 Pandas 数据框,该列应包含字典作为值。但是,某些值丢失并设置为 NaN。我希望这是 {}。有时,整个列都丢失了,将其初始化为 {} 也是有问题的。

用于添加列

tspd['metadata'] = {} # fails
tspd['metadata'] = [{} for _ in tspd.index] # works

用于填充缺失值

tspd['metadata'].replace(np.nan,{}) # does nothing
tspd['metadata'].fillna({}) # likewise does nothing
tspd.loc[tspd['metadata'].isna(), 'metadata'] = {} # error
tspd['metadata'] = tspd['metadata'].where(~tspd['metadata'].isna(), other={}) # this sets the NaN values to <built-in method values of dict object>

所以添加列是可行的,但有点难看。在没有一些(慢)循环的情况下替换值似乎是不可能的。

最佳答案

您可以使用 np.nan == np.nanFalse,因此可以使用替换缺失值:

tspd = pd.DataFrame({'a': [0,1,2], 'metadata':[{'a':'s'}, np.nan, {'d':'e'}]})

tspd['metadata'] = tspd['metadata'].apply(lambda x: {} if x != x else x)
print(tspd)

a metadata
0 0 {'a': 's'}
1 1 {}
2 2 {'d': 'e'}

或者:

tspd['metadata'] = [{} if x != x else x for x in tspd['metadata']]

关于python - Pandas fillna 到空字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56222852/

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