我构建了一个矩阵,其中列和索引为整数值。该矩阵实际上是按月份分层的。我的问题是,当我将数据写入 csv 然后加载为 pandas 数据框时,数据的索引和选择不再像以前那样工作。
在向文件写入和读取数据之前选择数据:
matrix.ix[1][4][3]
例如给出
123
用文字选择一月,然后获取从出发地 4 到目的地 3 的(旅行)流程。
将数据写入和读取到 csv 并返回 pandas 后,原始引用失败,但如果我将列索引转换为字符串,它就可以工作:
matrix.ix[1]['4'][3]
...列名已自动从整数转换为字符串。但我更喜欢原始索引。 有什么建议吗?
我目前处理从 csv 加载数据后的快速修复方法是:
# Writing df to file
mulitindex_df_Travel_monthly.to_csv(
r'result/Final_monthly_FlightData_countrylevel_v4.csv')
# Loading df from csv
test_matrix = pd.read_csv(
filepath_inputdata + '/Final_monthly_FlightData_countrylevel_v4.csv',
index_col=[0, 1])
test_matrix.rename(columns=int, inplace=True) # Thx, @ayhan
CSV 文件: https://www.dropbox.com/s/4u2opzh65zwcn81/travel_matrix_SO.csv?dl=0
你也可以这样做
df.columns = df.columns.astype(int)
或
df.columns = df.columns.map(int)
我用过这样的东西:
df = df.rename(columns={str(c): c for c in columns})
其中 df 是 pandas 数据框,columns 是要更改的列