我在编写代码时意识到,我认为有更简单的方法可以完成这项任务。
所以我有一个像这样的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
中挤压,我的意思是要得到这样的结果:
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,这里没有问题。
pd.DataFrame(df.to_numpy()[df.to_numpy()!="A"].reshape(-1, 2), columns = df.columns)
。 - sammywemmy