gpt4 book ai didi

python - 使用来自另一个数据帧的值更新数据帧 header

转载 作者:行者123 更新时间:2023-11-28 22:34:30 26 4
gpt4 key购买 nike

我正在处理人口普查数据(使用 Census package )。当我使用人口普查 API 选择变量时,它们以原始格式传递(例如 B01001_007),我想用标签(例如男性 18 到 19 岁)替换列名。

我知道这可以通过 df.columns = ['male 18 to 19 years', '男性 20 岁', '男21岁']但这很乏味。

有没有办法进行某种类型的映射,自动查询下面我的 df 中的 header ?

示例数据:

import pandas as pd
from pandas import DataFrame

variables_table = pd.DataFrame({'variable': ['B01001_007E','B01001_008E','B01001_009E'],
'label': ['male 18 to 19 years','male 20 years','male 21 years']
})

variables_table

label variable
male 18 to 19 years B01001_007E
male 20 years B01001_008E
male 21 years B01001_009E

不干净的输出:

df = pd.DataFrame({'B01001_007E': ['100','200','300'],
'B01001_008E': ['300','200','100'],
'B01001_009E': ['500','100','200']})
df
B01001_007E B01001_008E B01001_009E
100 300 500
200 200 100
300 100 200

最佳答案

df.rename(columns=variables_table.set_index('variable')['label'])
Out:
male 18 to 19 years male 20 years male 21 years
0 100 300 500
1 200 200 100
2 300 100 200

请注意,variables_table.set_index('variable')['label'] 是一个索引为“variable”的系列。它将在该索引上进行映射。

这不是就地操作。如果要更改实际数据帧,请将其分配回 df:df = df.rename(columns=variables_table.set_index('variable')['label']) 或使用 inplace 参数: df.rename(columns=variables_table.set_index('variable')['label'], inplace=True)

关于python - 使用来自另一个数据帧的值更新数据帧 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38941003/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com