python - 如何删除 NaN 并挤入 DataFrame - pandas

标签 python pandas dataframe

我正在做一些编码并意识到一些事情,我认为有一种更简单的方法。

所以我有一个像这样的 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/

相关文章:

python - gspread 在按标题打开后获取 key

python - 为什么将 multiprocessing 与 pandas apply 一起使用会导致如此显着的加速?

python - 随着时间的推移计算第二天有多少元素到达

r - 在 r 中保持组元素从第一个非缺失开始直到最后一个

python re.findall 与 re.sub

python - NoneType 类型的对象没有 len

python - Pandas - 提高应用方法的性能

python - 如何在 pandas 数据帧上执行 groupby 而不丢失其他列?

r - 使用 dplyr 获取 R 中 data.frame 列总和的更好方法

r - 使用与列同名的变量对数据框进行子集化