Python 在iloc中同时传递列索引和范围
假设我有一个包含100列的数据框架。我只想为所有行选择0,1和51-100列。我现在正在尝试这样的事情:Python 在iloc中同时传递列索引和范围,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,假设我有一个包含100列的数据框架。我只想为所有行选择0,1和51-100列。我现在正在尝试这样的事情: df.iloc[:,[0,1,range(51,101)]] 但这是一个错误: “使用序列设置数组元素” 虽然如果我只传递范围索引,而不传递列索引,它是有效的 我也尝试过: df.iloc[:,[0,1,51:102)]] 它显示的语法无效 有人能指出这里的错误吗。另外,请建议实现功能的替代方法 我认为您需要Concanate索引: df.iloc[:,np.r_[0,1,51:102]
df.iloc[:,[0,1,range(51,101)]]
但这是一个错误:
“使用序列设置数组元素”
虽然如果我只传递范围索引,而不传递列索引,它是有效的
我也尝试过:
df.iloc[:,[0,1,51:102)]]
它显示的语法无效
有人能指出这里的错误吗。另外,请建议实现功能的替代方法 我认为您需要Concanate索引:
df.iloc[:,np.r_[0,1,51:102]]
样本:
df = pd.DataFrame([[0] * 10], columns=list('abcdefghij'))
print (df)
a b c d e f g h i j
0 0 0 0 0 0 0 0 0 0 0
print (df.iloc[:,np.r_[0,1,5:8]])
a b f g h
0 0 0 0 0 0
您可以在不使用
numpy.r\u
的情况下执行此操作:
new_df=df.iloc[:,[0,1]+列表(范围(51101))]