只是想采用不同的方法来获取与 pandas 中的 df.columns
匹配/过滤的列表。
下面的代码片段工作完美,但期待其他方法。 即使我们可以考虑一个函数,请原谅我的简洁,因为我只是在学习 pandas。
# 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
提前感谢您提供的任何建议和解决方案。
最佳答案
是的,使用 pd.Index.intersection()
:
df[df.columns.intersection(matchObj)]
equity01 equity02
0 1 4
1 2 5
2 3 6
关于python-3.x - 从数据框中的列表中过滤列的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57029587/