使用 read_csv 将列名称转换为整数

问题描述 投票:0回答:2

我构建了一个矩阵,其中列和索引为整数值。该矩阵实际上是按月份分层的。我的问题是,当我将数据写入 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

python csv pandas matrix
2个回答
2
投票

你也可以这样做

df.columns = df.columns.astype(int)

df.columns = df.columns.map(int)

相关:数据框中.map(str)和.astype(str)有什么区别


1
投票

我用过这样的东西:

df = df.rename(columns={str(c): c for c in columns})

其中 df 是 pandas 数据框,columns 是要更改的列

© www.soinside.com 2019 - 2024. All rights reserved.