【发布时间】:2017-02-11 04:18:03
【问题描述】:
我有一个数据框df1,我有一个列表,其中包含df1 的几列的名称。
df1:
User_id month day Age year CVI ZIP sex wgt
0 1 7 16 1977 2 NA M NaN
1 2 7 16 1977 3 NA M NaN
2 3 7 16 1977 2 DM F NaN
3 4 7 16 1977 7 DM M NaN
4 5 7 16 1977 3 DM M NaN
... ... ... ... ... ... ... ... ...
35544 35545 12 31 2002 15 AH NaN NaN
35545 35546 12 31 2002 15 AH NaN NaN
35546 35547 12 31 2002 10 RM F 14
35547 35548 12 31 2002 7 DO M 51
35548 35549 12 31 2002 5 NaN NaN NaN
list= [u"User_id", u"day", u"ZIP", u"sex"]
我想创建一个新的数据框df2,其中将包含列表中的所有列,以及一个数据框df3,其中包含不在列表中的列。
Here我发现我需要做的:
df2=df1[df1[df1.columns[1]].isin(list)]
但结果我得到:
Empty DataFrame
Columns: []
Index: []
[0 rows x 9 columns]
我做错了什么,我怎样才能得到需要的结果?如果它应该是 4,为什么要“9 列”?
【问题讨论】:
-
抱歉,您是在第一种情况下关注
df2=df1[list]吗?对于其他你可以做df3=df1[df1.columns[~df1.columns.isin(list)]]
标签: python list pandas conditional-statements multiple-columns