我已经做了一些寻找这个问题的答案,但我能弄清楚的是:
df[df.columns[len(df.columns)-1]]
Run Code Online (Sandbox Code Playgroud)
对我来说,这似乎是unweildy,而不是pythonic(和慢?).
在没有指定列名的情况下,为pandas数据帧中的最后一列选择数据的最简单方法是什么?
Bou*_*oud 90
使用iloc并选择:最后一列(-1)的所有行():
df.iloc[:,-1]
Run Code Online (Sandbox Code Playgroud)
小智 26
这些是一些可以帮助你理解一切的东西......使用 iloc
在 iloc 中,[初始行:结束行,初始列:结束列]
情况 1:如果您只想要最后一列 --- df.iloc[:,-1] & df.iloc[:,-1:]
这意味着您只需要最后一列...
情况 2:如果您想要除最后一列之外的所有列和所有行 ---df.iloc[:,:-1]
这意味着您想要除最后一列之外的所有列和所有行...
情况 3:如果您只需要最后一行 ---df.iloc[-1:,:] & df.iloc[-1,:]
这意味着您只需要最后一行...
情况 4:如果您想要除最后一行之外的所有列和所有行 ---df.iloc[:-1,:]
这意味着您想要除最后一列之外的所有列和所有行...
情况 5:如果您想要除最后一行和最后一列之外的所有列和所有行 ---df.iloc[:-1,:-1]
这意味着您想要除最后一列和最后一行之外的所有列和所有行...
jez*_*jez 16
与你原来的尝试有点相似,但更多Pythonic,是使用Python的标准负索引约定从末尾向后计数:
df[df.columns[-1]]
Run Code Online (Sandbox Code Playgroud)
小智 6
问题是:如何选择数据框的最后一列?Appart @piRSquared,没有人回答这个问题。
获取最后一列数据框的最简单方法是:
df.iloc[ :, -1:]
Run Code Online (Sandbox Code Playgroud)
只是添加到@Anshul Singh Suryan 的回答中:
当我们拆分数据框以获取最后一列时:
如果我们像这样拆分:
y = df.iloc[:,-1:] - y 仍然是一个 dataframe
但是,如果我们像
y = df.iloc[:,-1] - y成为Series.
这是我在两种方法中发现的显着差异。如果您不关心结果类型,则可以使用两者之一。否则,您需要注意上述发现。
这适用于您要提取的任意数量的行,而不仅仅是最后一行。例如,如果您想要n数据帧的最后行数,其中 n 是小于或等于数据帧中列数的任何整数,那么您可以轻松执行以下操作:
y = df.iloc[:,n:]
Run Code Online (Sandbox Code Playgroud)
替换n为您想要的列数。行也是如此。
| 归档时间: |
|
| 查看次数: |
66251 次 |
| 最近记录: |