python - 如何从包含 NaN 的另一个框架中的列表中对 pandas 数据框架中的列进行子集化?

标签 python pandas

这是需要子集化的数据框:

df1: 
    A    B    C
0   1    3    1
1   0    4    1
2   3    1    1
3   2   -6    1
4   8    1   -1
5   10   0    9
.   .    .    .
.   .    .    .
.   .    .    .
[Frame Continues]

我的引用系:

df2:
    Names    Year
0     A       3
1     C       4
2     NaN     3
3     NaN     1
4     NaN     3

我想要什么:

df3:
    A    C
0   1    1
1   0    1
2   3    1
3   2    1
4   8   -1
5   10   9
.   .    .
.   .    . 
.   .    .
[Frame Continues]

帧末尾的 . 表示帧延续到某个长度。

该帧有一个整数索引。如框架左侧所示。

我尝试过:d3 = d1[d2["Names"]],但随后出现错误,指出无法使用包含 NA/NaN 值的向量进行索引

我还尝试了d3 = d1[d2["Names"].tolist()]。说[nan nan nan]不在索引中

有没有办法让 pandas 跳过 NaN?

最佳答案

您可以使用 DataFrame.filter 来执行此操作,它将自动处理 NaN 并使其非常明确您的意图是对列进行子集化,例如:

df1.filter(df2.Names)

关于python - 如何从包含 NaN 的另一个框架中的列表中对 pandas 数据框架中的列进行子集化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38310889/

相关文章:

python - Pandas:对于几列中的每个行值,将其转换为新行

python - Pandas 多重索引和 pytables...单独索引还是一个串联索引?

pandas - 创建列的 bin 并获取 Pandas 中的计数

python - 从另一个数据帧更新数据帧不起作用

python - 如何在python中检查ssh是否询问密码?

python - PyQt5中如何在线程之间传递数据?

python - 当 Python 中不再显示唯一 ID 时标记大型数据集

pandas - 将 For 循环的值插入 Pandas 列

python - Django 中的动态字段计算

python - 尝试使用 pdfminer.6 提取文本时如何修复 'UnicodeDecodeError'?