如何将最后两列转换为数字。我不想按标签引用这些列,因为数据框的结构可能会更改。我一直想更新最后两列。
源数据
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)
答案 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)