我知道这些列切片方法:
df2 = df[["col1", "col2", "col3"]]
和 df2 = df.ix[:,0:2]
但我想知道是否有一种方法可以在同一切片中从数据帧的前端/中间/末端对列进行切片,而无需具体列出每一列。
例如,包含列的数据框 df
:col1、col2、col3、col4、col5 和 col6。
有没有办法做这样的事情?
df2 = df.ix[:, [0:2, "col5"]]
我的情况是我有数百个列并且经常需要为不同的请求切分特定的列。我已经查看了文档,但没有看到类似的东西。我忽略了什么吗?
最佳答案
IIUC,我能想到的最简单的方法是这样的:
>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.random.randn(5, 10))
>>> df[list(df.columns[:2]) + [7]]
0 1 7
0 0.210139 0.533249 1.780426
1 0.382136 0.083999 -0.392809
2 -0.237868 0.493646 -1.208330
3 1.242077 -0.781558 2.369851
4 1.910740 -0.643370 0.982876
list
调用不是可选的,否则 Index
对象将尝试将自身向量添加到 7。
像 numpy 的 r_
这样的特殊情况是可能的
df[col_[:2, "col5", 3:6]]
会工作,虽然我不知道是否值得麻烦。
关于python - 保留/切片 Pandas 中的特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15072005/