Pandas 索引中的数字是 strings/object
Pandas numbers in index are strings/object
运行
for index, row in df.iterrows():
print(df.iloc[index,0])
产生以下错误:
ValueError: Location based indexing can only have [integer, integer
slice (START point is INCLUDED, END point is EXCLUDED), listlike of
integers, boolean array] types
索引为0
:
index
Out[57]: '0'
但不知何故,我的索引由我可以通过
确认的字符串组成
type(index)
Out[63]: str
虽然我已经申请了 df.reset_index()
。
如何确保我的 df (df.index
) 的索引由整数组成?
编辑:
df.index
Out[69]:
Index(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
...
'14829', '14830', '14831', '14832', '14833', '14834', '14835', '14836',
'14837', '14838'],
dtype='object', length=14839)
index 结果为“0”,这意味着它是一个字符串。您可以使用 int() 函数轻松地将其设为整数。
根据您的情况,int(index)
将解决问题。
In [85]: df.index
Out[85]: Index(['0', '1', '2', '3', '4', '5', '6'], dtype='object')
In [86]: df.index = df.index.astype(int)
In [87]: df.index
Out[87]: Int64Index([0, 1, 2, 3, 4, 5, 6], dtype='int64')
利用astype
运行
for index, row in df.iterrows():
print(df.iloc[index,0])
产生以下错误:
ValueError: Location based indexing can only have [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] types
索引为0
:
index
Out[57]: '0'
但不知何故,我的索引由我可以通过
确认的字符串组成type(index)
Out[63]: str
虽然我已经申请了 df.reset_index()
。
如何确保我的 df (df.index
) 的索引由整数组成?
编辑:
df.index
Out[69]:
Index(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
...
'14829', '14830', '14831', '14832', '14833', '14834', '14835', '14836',
'14837', '14838'],
dtype='object', length=14839)
index 结果为“0”,这意味着它是一个字符串。您可以使用 int() 函数轻松地将其设为整数。
根据您的情况,int(index)
将解决问题。
In [85]: df.index
Out[85]: Index(['0', '1', '2', '3', '4', '5', '6'], dtype='object')
In [86]: df.index = df.index.astype(int)
In [87]: df.index
Out[87]: Int64Index([0, 1, 2, 3, 4, 5, 6], dtype='int64')
利用astype