熊猫:将最后一列转换为数字

时间:2019-04-27 21:26:29

标签: python pandas dataframe

如何将最后两列转换为数字。我不想按标签引用这些列,因为数据框的结构可能会更改。我一直想更新最后两列。

源数据

df = pd.DataFrame({
    'a': ['1','2','3','4','5'],
    'b': ['1','2','3','4','5'],
    'c': ['1','2','3','4','5'],
    'd': ['1','2','3','4','5'],
    'e': ['1','2','3','4','5']
})


df

    a   b   c   d   e
0   1   1   1   1   1
1   2   2   2   2   2
2   3   3   3   3   3
3   4   4   4   4   4
4   5   5   5   5   5

实际上,我想使以下内容动态化(总是最后两列,而不是硬编码的“ d”和“ e”)

df[['d', 'e']] = df[['d', 'e']].apply(pd.to_numeric)

1 个答案:

答案 0 :(得分:2)

df.columns[-2:]为您提供最后两列的名称。所以您可以尝试:

df[df.columns[:-2]] = df[df.columns[:-2]].apply(pd.to_numeric)

或者您可以使用iloc

df.iloc[:, -2:] = df.iloc[:, -2:].apply(pd.to_numeric)