pandas DataFrame中的一列是字典。列中有几个空单元格,我想检查它们。我尝试了一些不起作用的条件:
df = pd.DataFrame({
'id': ['7e9zsX7CM4', "y6t451h21"],
'img_dict': ["defaultdict(< class 'list'>, {'7e9zsX7CM4': ['https://image_1.png','https://image_2.png']})", ""]
})
img_dict = df['img_dict'][1]
img_dict = ast.literal_eval(img_dict)
# conditions that didn't work
if img_dict is None:
if img_dict == "":
if img_dict == np.nan:
if not img_dict:
File "/Users/opt/anaconda3/lib/python3.8/ast.py", line 99, in literal_eval
return _convert(node_or_string)
File "/Users/opt/anaconda3/lib/python3.8/ast.py", line 98, in _convert
return _convert_signed_num(node)
File "/Users/opt/anaconda3/lib/python3.8/ast.py", line 75, in _convert_signed_num
return _convert_num(node)
File "/Users/opt/anaconda3/lib/python3.8/ast.py", line 66, in _convert_num
_raise_malformed_node(node)
File "/Users/opt/anaconda3/lib/python3.8/ast.py", line 63, in _raise_malformed_node
raise ValueError(f'malformed node or string: {node!r}')
ValueError: malformed node or string: nan
发布于 2021-08-27 19:56:57
Pandas有一个很好的方法: pandas.DataFrame.dropna,它删除了缺少的值。这就是我将它应用于您的代码的方式
df = pd.DataFrame({
'id': ['7e9zsX7CM4', "y6t451h21"],
'img_dict': ["defaultdict(< class 'list'>, {'7e9zsX7CM4': ['https://image_1.png','https://image_2.png']})", ""]
}).dropna()
然后检查它:
if "" in df['img_dict']:
pass
https://stackoverflow.com/questions/68958754
复制相似问题