我已导入包含14列&的csv文件我想重命名一个数据框“columnNameDF”
中存在的所有列名来源数据:
Column1,Column2,Column3,Column4,Column5,Column6,Column7,Column8,Column9,Column10,Column11,Column12,Column13,Column14
1,2,3,4,5,6,7,8,9,10,11,12,13,14
列重命名存储在columnNameDF中。
SourceColumns Rename
Column1 Snapshot Date
Column2 Quarter End
Column3 Year End
Column4 RIA Ownership Type
Column5 Age Bracket
Column6 Gender
Column7 Channel Type
Column8 Exclude Non Producers
Column9 Firm
Column10 Firm Type
Column11 License
Column12 Retail BD Type
Column13 Retail BD Primary Type
Column14 Years A Rep
预期输出:
Snapshot Date,Quarter End,Year End,RIA Ownership Type,Age Bracket,Gender,Channel Type,Exclude Non Producers,Firm,Firm Type,License,Retail BD Type,Retail BD Primary Type,Years A Rep
1,2,3,4,5,6,7,8,9,10,11,12,13,1
如何在单个脚本中重命名所有列? 我想将它用于500多个csv文件,而源文件列的顺序不一样。
答案 0 :(得分:2)
df
SourceColumns Rename
0 Column1 Snapshot Date
1 Column2 Quarter End
2 Column3 Year End
3 Column4 RIA Ownership Type
4 Column5 Age Bracket
5 Column6 Gender
6 Column7 Channel Type
7 Column8 Exclude Non Producers
8 Column9 Firm
9 Column10 Firm Type
10 Column11 License
11 Column12 Retail BD Type
12 Column13 Retail BD Primary Type
13 Column14 Years A Rep
df2
Column1 Column2 Column3 Column4 Column5 Column6 Column7 Column8 \
0 1 2 3 4 5 6 7 8
Column9 Column10 Column11 Column12 Column13 Column14
0 9 10 11 12 13 14
在列映射的列上使用df.rename
:
df2 = df2.rename(columns=df.set_index('SourceColumns').Rename.to_dict())
df2
Snapshot Date Quarter End Year End RIA Ownership Type Age Bracket \
0 1 2 3 4 5
Gender Channel Type Exclude Non Producers Firm Firm Type License \
0 6 7 8 9 10 11
Retail BD Type Retail BD Primary Type Years A Rep
0 12 13 14
答案 1 :(得分:0)
在Pandas版本0.21.0 set_axis
中:
source_df.set_axis(columnNameDF['Rename'].values, axis=1, inplace=False)
输出:
Snapshot Date Quarter End Year End RIA Ownership Type Age Bracket \
0 1 2 3 4 5
Gender Channel Type Exclude Non Producers Firm Firm Type License \
0 6 7 8 9 10 11
Retail BD Type Retail BD Primary Type Years A Rep
0 12 13 14