我正在做一些编码并意识到一些事情,我认为有一种更简单的方法。
所以我有一个像这样的 DataFrame
:
>>> df = pd.DataFrame({'a': [1, 'A', 2, 'A'], 'b': ['A', 3, 'A', 4]})
a b
0 1 A
1 A 3
2 2 A
3 A 4
我想从数据中删除所有A
,但我也想挤入DataFrame
,我的意思是挤入DataFrame
就是有这样的结果:
a b
0 1 3
1 2 4
我有一个解决方案如下:
a = df['a'][df['a'] != 'A']
b = df['b'][df['b'] != 'A']
df2 = pd.DataFrame({'a': a.tolist(), 'b': b.tolist()})
print(df2)
这行得通,但我似乎认为有更简单的方法,我已经停止编码一段时间了,所以不再那么聪明了......
注意:
所有列都有相同数量的A
,没有问题。
最佳答案
您可以尝试使用 loc
进行 bool 索引以删除 A
值:
pd.DataFrame({c: df.loc[df[c] != 'A', c].tolist() for c in df})
结果:
a b
0 1 3
1 2 4
关于python - 如何删除 NaN 并挤入 DataFrame - pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65368430/