簡體   English   中英

僅當名稱在字典中時,才根據字典重命名 pandas 列

[英]Rename pandas column based on a dictionary only if the name is in the dictionary

我想重命名我的 dataframe 中的列,使用字典中的名稱,但在我的例子中,我擁有的字典並不代表所有列名,因此我只想更改我的字典中的列名。 例如

       key1 key2 key3 key4
index
1      val1 val2 val3 val4
2      val5 val6 val7 val8
3      ...
4
5

我的字典是

{'key1': 'name1',
 'key2': 'name2',
 'key4': 'name4'
}

我想要得到的是

       name1 name2 key3 name4
index
1      val1 val2 val3 val4
2      val5 val6 val7 val8
3      ...
4
5

所以我試圖做與這個問題相同的事情,但是映射不起作用,因為不在我的字典中的鍵在列名中以Nans結尾。 有誰知道如何做到這一點? TT

您可以在列表理解中使用dict.get (請注意,我在此處將字典命名為d ):

df.columns = [d.get(k,k) for k in df.columns]

Output:

      name1 name2  key3 name4
index                        
1      val1  val2  val3  val4
2      val5  val6  val7  val8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM