如何处理数据帧中的可变列数

时间:2020-05-29 05:41:57

标签: python pandas

在数据框中,我有很多列,我只需要几列。例如

Col_A      Col_B      Col_C      Col_D      Col_E      Col_F
...        ...        ...      ...      ...      ...      ...        

我只需要列Col_A, Col_C and Col_E,所以目前我要做的是df = df[['Col_A', 'Col_C', 'Col_E']],但是这里的问题是,列A, C and E并不总是存在,也许所有这些都不存在。所以我需要将Col_A中的df.columns添加到df中,依此类推。有没有简单的方法可以做到这一点?而不是那么多if?现在,如果缺少一列,我将得到一个KeyError: "['Col_C'] not in index

4 个答案:

答案 0 :(得分:2)

您可以使用locisin

df.loc[:, df.columns.isin(['a','b','c'])]

答案 1 :(得分:2)

使用Index.intersection

df[df.columns.intersection(['Col_A','Col_A','Col_E'], sort=False)]

答案 2 :(得分:1)

您可以使用list comprehension。例如:

test_columns = ['Col_A', 'Col_C', 'Col_E']
df = df[[c for c in test_columns if c in df.columns]]

答案 3 :(得分:-1)

根据我的解释,您可以创建[ { "zone": [], "id": 7 }, { "zone": [ { "id": 15 } ], "id": 16 } ] 的副本,将其存储在另一个变量中,然后“删除”不需要的列,

df