Python:选择数据并忽略键错误
注意:我的问题不是,而是一些更微妙的问题 假设我有一个像这样的数据框Python:选择数据并忽略键错误,python,pandas,dataframe,keyerror,Python,Pandas,Dataframe,Keyerror,注意:我的问题不是,而是一些更微妙的问题 假设我有一个像这样的数据框 df = A B C 0 3 3 1 1 2 1 9 df[[“A”、“B”、“D”]将引发一个KeyError 有没有办法让df[[“a”、“B”、“D”]==df[[“a”、“B”]]?(即:只需选择存在的列。) 一个解决办法可能是 good_columns = list(set(df.columns).intersection(["A", "B", "D"])
df =
A B C
0 3 3 1
1 2 1 9
df[[“A”、“B”、“D”]
将引发一个KeyError
有没有办法让df[[“a”、“B”、“D”]==df[[“a”、“B”]]
?(即:只需选择存在的列。)
一个解决办法可能是
good_columns = list(set(df.columns).intersection(["A", "B", "D"]))
mydf = df[good_columns]
但这有两个问题:
- 它既笨重又不雅观
mydf.列的顺序可以是
或[“A”,“B”]
[“B”,“A”]
df.filter(["A","B","D"])
A B
0 3 3
1 2 1
您可以使用条件列表:
target_cols = ['A', 'B', 'D']
>>> df[[c for c in target_cols if c in df]]
A B
0 3 3
1 2 1
看起来这是一个
O(n)
检查df中是否有c
。我会坚持@maxymoo的答案。谢谢非常感谢。我希望熊猫文档对每个功能都有使用范例,就像ScKIT-EnLeN.你为什么不考虑提交一些文件,文档是开始为开源项目做出贡献的一个好方法。