我有以下数据框
age sex cp
0 63.0 1.0 1.0
1 67.0 1.0 4.0
2 41.0 0.0 2.0
然后在每一列上应用转换过程,如下所示:
age = store_data['age']
age_bins = [0, 40, 60, 100]
age_categories = pd.cut(age, age_bins)
sex = store_data['sex']
sex_series = pd.Series(sex, dtype = "category")
sex_rename = sex_series.cat.rename_categories(['F','M'])
cp = store_data['cp']
cp_series = pd.Series(cp, dtype = "category")
cp_rename = cp_series.cat.rename_categories(["typical","atypical","non-anginal","asymptomatic"])
每个的输出如下:
>>age_categories
0 (60, 100]
1 (60, 100]
2 (40, 60]
>>sex_rename
0 M
1 M
4 F
>>cp_rename
0 typical
1 asymptomatic
2 atypical
如何使用新的转换后的值更新原始列:age_categories,sex_rename,cp_rename?我想保留旧的名字(年龄,性别,cp)为首
答案 0 :(得分:2)
尝试消除多余的变量?由于没有数据,因此我没有执行此操作,但这应该直接更新您的数据框。
age_bins = [0, 40, 60, 100]
store_data['age'] = pd.cut(store_data['age'], age_bins)
__
store_data['sex'] = pd.Series(store_data['sex'], dtype = "category").cat.rename_categories(['F','M'])
__
store_data['cp'] = pd.Series(store_data['cp'], dtype = "category").cat.rename_categories(["typical","atypical","non-anginal","asymptomatic"])
答案 1 :(得分:1)
我这样尝试过:
age = store_data["age"]
age_bins = [0, 40, 60, 100]
age_categories = pd.cut(age, age_bins)
sex = store_data['sex']
sex_series = pd.Series(sex, dtype = "category")
sex_rename = sex_series.cat.rename_categories(['F','M'])
cp = store_data['cp']
cp_series = pd.Series(cp, dtype = "category")
cp_rename = cp_series.cat.rename_categories(["typical","atypical","non-anginal"])
print(age_categories)
print(sex_rename)
print(cp_rename)
store_data['age']=age_categories
store_data['sex']=sex_rename
store_data['cp']=cp_rename
print(store_data)
age sex cp
0 (60, 100] M typical
1 (60, 100] M non-anginal
2 (40, 60] F atypical