我正在使用Python中的Pandas从Excel中读取一些数据,以下是我读取数据的方式:
data_frame = pd.read_excel(file_location, usecols=catcode_column)
data_frame2 = pd.read_excel(file_location, usecols=smpl_column)
其中,file_位置是一个路径字符串,usecols只是我想从Excel文件中读取的列。然后我有2个for循环,第一个循环只使用给定列的前5个字符,第二个循环使用整个字符串:
for i in data_frame:
data_frame["catcode_column"] = data_frame[catcode_column_name].apply(lambda x: str(x)[:5])
for j in data_frame2:
data_frame2["smpl_column"] = data_frame2[smpl_column_name].apply(lambda y: y[:])
现在,我使用以下方法将这些数据帧转换为列表:
catcode_array = data_frame["catcode_column"].values.tolist()
smpl_array = data_frame2["smpl_column"].values.tolist()
打印catcode_阵列和smpl_阵列时的输出如下所示:
Catcode数组:['34123','42253','63334']
SMPL阵列:[“公寓-中楼”、“公寓-中楼”、“公寓-中楼”]
现在,我有一个新数组初始化为None,大小为10000,计数器初始化为0。我遍历上面打印的smpl\u数组,如果smpl\u数组的索引I等于建筑类型数组索引0,然后我想将catcode_数组的值存储在公寓中的索引I中计数器1的中,该值在开始时为0,因此在该数组的第一个索引处,然后递增计数器。构建类型数组是字符串数组,这毫无价值
apartment_midrise = [None] * 10000
counter1 = 0
for i in smpl_array:
if smpl_array[i] == building_type_array[0]:
apartment_midrise[counter1] = catcode_array[i]
counter1 += 1
但是,我在上面的if语句中得到了以下错误:
if smpl_array[i] == building_type_array[0]:
TypeError:列表索引必须是整数或片,而不是str
我一直在努力解决这个问题,但没有任何运气。我将感谢任何帮助。谢谢
为了在列表上循环并在每次迭代中获取项目及其索引,可以使用
enumerate
:相关问题 更多 >
编程相关推荐