我有像这样的pandas数据帧(df)
Close Close Close Close Close
Date
2000-01-03 00:00:00 NaN NaN NaN NaN -0.033944
2000-01-04 00:00:00 NaN NaN NaN NaN 0.0351366
2000-01-05 00:00:00 -0.033944 NaN NaN NaN -0.0172414
2000-01-06 00:00:00 0.0351366 -0.033944 NaN NaN -0.00438596
2000-01-07 00:00:00 -0.0172414 0.0351366 -0.033944 NaN 0.0396476
Run Code Online (Sandbox Code Playgroud)
在R如果我要选择第五列
five=df[,5]
Run Code Online (Sandbox Code Playgroud)
没有第5列
rest=df[,-5]
Run Code Online (Sandbox Code Playgroud)
如何使用pandas dataframe执行类似的操作
我在熊猫中试过这个
five=df.ix[,5]
Run Code Online (Sandbox Code Playgroud)
但它给出了这个错误
File "", line 1
df.ix[,5]
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
使用iloc.它明确地是基于位置的索引器. ix如果索引是基于整数的,则可以是两者并且会混淆.
df.iloc[:, [4]]
Run Code Online (Sandbox Code Playgroud)
除了第五列以外的所有内容
slc = list(range(df.shape[1]))
slc.remove(4)
df.iloc[:, slc]
Run Code Online (Sandbox Code Playgroud)
或者等价的
df.iloc[:, [i for i in range(df.shape[1]) if i != 4]]
Run Code Online (Sandbox Code Playgroud)
如果你想要第五列:
df.ix[:,4]
Run Code Online (Sandbox Code Playgroud)
将冒号插入其中以获取该列的所有行。
要排除第五列,您可以尝试:
df.ix[:, (x for x in range(0, len(df.columns)) if x != 4)]
Run Code Online (Sandbox Code Playgroud)