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

时间:2016-07-11 15:34:54

标签: 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"]],但后来又出现了Cannot index with vector containing NA/NaN values的错误。

我也试过d3 = d1[d2["Names"].tolist()]。说[nan nan nan] not in index

有没有办法让大熊猫跳过NaN?

1 个答案:

答案 0 :(得分:1)

您可以使用DataFrame.filter执行此操作,然后自动处理NaN并明确表示您的意图是对列进行分类,例如:

df1.filter(df2.Names)