我使用Pandas读取Excel中的csv文件,并将其转换为数据框(显然还有更多值):
df_c = pd.read_csv(r'<filename>, low_memory = False)
CRASH_ID SER_NO CMPSS_DIR_CD URB_AREA_CD CRASH_DAY_NO
1486150 1 2 67 1
1486152 3 7 67 1
1486224 4 2 53 5
1486225 5 9 54 2
我使用to_dict
将其转换为字典,以便每个列名都有一个与之关联的值列表:
dfdict = df_c.to_dict(orient='list')
但大多数(如果不是全部)dfdict
中的数值由于某种原因已被转换为浮点数,原因如下:
{'CRASH_ID': [1486150, 1486152, 1486224, 1486225],
'SER_NO': [1, 3, 4, 5],
'CMPSS_DIR_CD': [2.0, 7.0, 2.0, 9.0],
'URB_AREA_CD': [67.0, 67.0, 53.0, 54.0],
'CRASH_DAY_NO': [1, 1, 5, 2]}
哪个不好,因为我需要将dfdict
中的值与不同的值列表进行匹配,因此如果dfdict
中的某些值具有小数,则匹配将不起作用正确。
我已经检查过以确保原始数据框中没有任何浮点数。它没有。我已经尝试强制数据帧成为df_c.applymap(str)
的字符串,但数据根本不会改变,当我尝试强制字典包含df_c.astype(object).to_dict
的字符串时,它也不会改变(如建议here)。