繁体   English   中英

通过搜索列表替换 Pandas DF 列

[英]Replacing Pandas DF columns by searching through a list

我正在解决一个问题,我有一个 dataframe,它包含数据以及列名,这些列名是用于某些特定目的的代码,如下所示:

AB_01 AB_12 AB_32 AB_50
约翰 26 E1 我们
蒂娜 30 E2 加州
迈克尔 50 E1 英国
邵氏 55 E3 我们

我有一个列表列表,其中包含列名及其相应的列代码,如下所示:

[
  ['AB_01', 'Name']
  ['AB_12', 'Age']  
  ['AB_32', 'Unit']  
  ['AB_50', 'Country']
  ['BZ_90', 'Zip']
  ['CX_10', 'State']
  ['ED_55', 'Email']
]

某些列可能未在数据框中使用,因此我想从列表中搜索列代码,然后将列代码替换为列表中的名称,以便我得到如下所示的内容:

名称 年龄 单元 国家
约翰 26 E1 我们
蒂娜 30 E2 加州
迈克尔 50 E1 英国
邵氏 55 E3 我们

这样做的最好方法是什么? 我想到的是遍历 dataframe 中的每一列代码,将其与列表中的列代码进行比较,然后将其替换为列表中相应的列名称。 有更好的方法吗?

您可以将列表转换为字典,并将map转换为列:

df.columns = df.columns.map(dict(lst))

Output:

      Name  Age Unit Country
0     John   26   E1      US
1     Tina   30   E2      CA
2  Michael   50   E1      UK
3     Shaw   55   E3      US

让我们尝试renamel是您的列表

out = df.rename(columns = dict(l))
Out[332]: 
      Name  Age Unit Country
0     John   26   E1      US
1     Tina   30   E2      CA
2  Michael   50   E1      UK
3     Shaw   55   E3      US

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM