![](/img/trans.png)
[英]Change Dataframe Column Name by mapping with other Dataframe Column, Python 3.6
[英]Change dataframe columns if column name exist in other dataframe, Python 3.6
我有一個主數據框(DF),其中包含以下列和數據
C D E F G H I J K L QC
254 95 0 34543 43 32 4 4 4 4 Q23
255 59 1 43 tre r5 54 567 564 Q23
256 50 7 65 76557 65 65 5 5 Q23
並且,將數據框(MDF)與下面的列映射
QC Res1 Res2 Res3 Res4 Res5 Res6 Res7 Res8 Res9 Res10
Q23 US CH JP CE OV NON DK TOT N KK
Q24 US ZZ JP ME KP NON DK TOT E LK
在此,兩個數據框中的QC列均用於映射。
我想通過使用MDF ['QC'] = DF [Q23]的MDF映射來替換DF列
兩個數據幀中的順序相同。 我總共有500個數據框,我想用另一個數據框中存在的新列更新所有數據框列。
最終預期數據幀:DF
US CH JP CE OV NON DK TOT N KK QC
254 95 0 34543 43 32 4 4 4 4 Q23
255 59 1 43 tre r5 54 567 564 Q23
256 50 7 65 76557 65 65 5 5 Q23
這確實是一項挑戰。
您可以通過選擇包含'QC'值的行來使用np.append,即
如果您有類似的數據框
print(df1) C D E F G H I J K L QC 0 254 95 0 34543 43 32.0 4 4 4 4 Q23 1 255 59 1 43 tre NaN r5 54 567 564 Q23 2 256 50 7 65 NaN 76557.0 65 65 5 5 Q23
print(df2) C D E F G H I J K L QC 0 254 95 0 34543 43 32.0 4 4 4 4 Q24 1 255 59 1 43 tre NaN r5 54 567 564 Q24 2 256 50 7 65 NaN 76557.0 65 65 5 5 Q24
然后for循環來分配列將對您有所幫助
for i in [df1,df2]:
q = i['QC'].unique()[0]
i.columns = np.append(mdf[mdf['QC'] == q].values[0][1:],['QC'])
print([df1,df2]
[ US CH JP CE OV NON DK TOT N KK QC 0 254 95 0 34543 43 32.0 4 4 4 4 Q23 1 255 59 1 43 tre NaN r5 54 567 564 Q23 2 256 50 7 65 NaN 76557.0 65 65 5 5 Q23, US ZZ JP ME KP NON DK TOT E LK QC 0 254 95 0 34543 43 32.0 4 4 4 4 Q24 1 255 59 1 43 tre NaN r5 54 567 564 Q24 2 256 50 7 65 NaN 76557.0 65 65 5 5 Q24]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.