只是想用另一种方法来获取对df.columns
的熊猫进行匹配/过滤的列表。
下面的代码段效果很好,但是期待其他方法。 甚至我们可以考虑一个功能,请原谅我只是为了学习熊猫。
# list of columns names to be matched & checked
>>> matchObj = ['equity01', 'equity02', 'equity1' 'equity2']
# DataFrame construct
>>> df = pd.DataFrame({'equity01': [1, 2, 3], 'equity02': [4, 5, 6], 'equity03': [7, 8, 9], 'equity04': [2, 3, 4], 'equity05': [5, 6, 7]})
>>> df
equity01 equity02 equity03 equity04 equity05
0 1 4 7 2 5
1 2 5 8 3 6
2 3 6 9 4 7
# One way to with list comprehension as follows..
>>> print(df[[col for col in matchObj if col in df.columns]])
equity01 equity02
0 1 4
1 2 5
2 3 6
非常感谢您提供任何建议和解决方案。
答案 0 :(得分:2)
df[df.columns.intersection(matchObj)]
equity01 equity02
0 1 4
1 2 5
2 3 6
答案 1 :(得分:2)
df.loc[:,df.columns.isin(matchObj)]
equity01 equity02
0 1 4
1 2 5
2 3 6