我的数据框df
如下所示:
record_id month day year plot species sex wgt
0 False False False False False True False True
1 False False False False False True False True
2 False False False False False False False True
3 False False False False False False False True
4 False False False False False False False True
5 False False False False False False False True
6 False False False False False False False True
7 False False False False False False False True
8 False False False False False False False True
9 False False False False False False False True
10 False False False False False False False True
11 False False False False False False False True
我有一个名为list
的列表,其中包含df中标题的子集,如下所示:[month,plot,sex]
是否有办法将list
应用于数据框,因此只有列表中数据框中的列才会返回到新的数据框。所以新数据框看起来像:
month plot sex
0 False False False
1 False False False
2 False False False
3 False False False
4 False False False
5 False False False
6 False False False
7 False False False
8 False False False
9 False False False
10 False False False
11 False False False
我试过df1= df[list]
但没有成功。
答案 0 :(得分:3)
使用isin
df.loc[:,df.columns.isin(['month','plot','sex'])]
Out[165]:
month plot sex
0 False False False
1 False False False
2 False False False
3 False False False
4 False False False
5 False False False
6 False False False
7 False False False
8 False False False
9 False False False
10 False False False
11 False False False
答案 1 :(得分:1)
IIUC:
l = ['month','plot','sex']
df[l]
输出:
month plot sex
0 False False False
1 False False False
2 False False False
3 False False False
4 False False False
5 False False False
6 False False False
7 False False False
8 False False False
9 False False False
10 False False False
11 False False False
答案 2 :(得分:0)
List
是内置的,如果您尝试访问基于内置的df,如df[list]
将返回整个数据帧。不建议将任何值赋给builtins。因此,上面的答案建议将列表存储在不同的变量名称中,然后尝试进行索引。
即
df[list].head(4)
record_id month day year plot species sex wgt 0 False False False False False True False True 1 False False False False False True False True 2 False False False False False False False True 3 False False False False False False False True
如果k = ['record_id','month']
,则df[k]
将返回
record_id month 0 False False 1 False False 2 False False 3 False False . .