在数据框中,我有很多列,我只需要几列。例如
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
答案 0 :(得分:2)
答案 1 :(得分:2)
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