gpt4 book ai didi

python-3.x - 用 NaN 替换 Pandas DataFrame 中的空列表值

转载 作者:行者123 更新时间:2023-12-04 01:08:19 25 4
gpt4 key购买 nike

我知道以前有人问过类似的问题,但我确实尝试了这里列出的所有可能的解决方案,但没有一个奏效。

我有一个由日期、字符串、空值和空列表值组成的数据框。它非常庞大,有 800 万行。

我想替换所有空列表值 - 所以只包含仅包含 [] 的单元格,没有其他内容与 NaN。似乎没有任何效果。

我试过这个:

df = df.apply(lambda y: np.nan if (type(y) == list and len(y) == 0) else y)

正如在这个问题中提出的类似建议 replace empty list with NaN in pandas dataframe但它不会改变我的数据框中的任何内容。

任何帮助,将不胜感激。

最佳答案

假设 OP 想要将空列表、字符串 '[]' 和对象 '[]' 转换为 na,下面是一个解决方案。

设置

#borrowed from piRSquared's answer.
df = pd.DataFrame([
[1, 'hello', np.nan, None, 3.14],
['2017-06-30', 2, 'a', 'b', []],
[pd.to_datetime('2016-08-14'), 'x', '[]', 'z', 'w']
])

df
Out[1062]:
0 1 2 3 4
0 1 hello NaN None 3.14
1 2017-06-30 2 a b []
2 2016-08-14 00:00:00 x [] z w

解决方案:
#convert all elements to string first, and then compare with '[]'. Finally use mask function to mark '[]' as na
df.mask(df.applymap(str).eq('[]'))
Out[1063]:
0 1 2 3 4
0 1 hello NaN None 3.14
1 2017-06-30 2 a b NaN
2 2016-08-14 00:00:00 x NaN z w

关于python-3.x - 用 NaN 替换 Pandas DataFrame 中的空列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43788826/

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