pandas 系列上的 .all() 不是 return 预期的行为
.all() on pandas series not return expected behavior
我有一个名为 df_output
的数据框,就像这样
index col1
0 | ''
1 | ''
2 | ''
3 | ''
4 | ''
如果我 运行 df_output['col1'].values.all() == ''
我的 return 值是 true
。但是,如果我编辑数据框,它看起来像这样
index col1
0 | '324'
1 | ''
2 | ''
3 | ''
4 | ''
和 运行 df_output['col1'].values.all() == ''
我仍然得到 return 值 true
。这行 return 不应该为假,因为 col1 索引 0 处的值是“324”吗?还是我误解了 .all() 在系列中的工作方式。
df_output['col1'] == '324'
会给你一个 per-row 与 '342'
的比较,得到一系列 True/False。然后你 reduce 那些 True/False 与 (df_output['col1'] == '324').all()
合二为一,这对于你的两个示例数据帧都是 False 。但是,(df_output['col1'] == '').all()
应该为您的第一个数据帧提供 True。
我有一个名为 df_output
的数据框,就像这样
index col1
0 | ''
1 | ''
2 | ''
3 | ''
4 | ''
如果我 运行 df_output['col1'].values.all() == ''
我的 return 值是 true
。但是,如果我编辑数据框,它看起来像这样
index col1
0 | '324'
1 | ''
2 | ''
3 | ''
4 | ''
和 运行 df_output['col1'].values.all() == ''
我仍然得到 return 值 true
。这行 return 不应该为假,因为 col1 索引 0 处的值是“324”吗?还是我误解了 .all() 在系列中的工作方式。
df_output['col1'] == '324'
会给你一个 per-row 与 '342'
的比较,得到一系列 True/False。然后你 reduce 那些 True/False 与 (df_output['col1'] == '324').all()
合二为一,这对于你的两个示例数据帧都是 False 。但是,(df_output['col1'] == '').all()
应该为您的第一个数据帧提供 True。