futui 发表于 2022-12-12 14:50:59

求大神看下,如何才能由数字得到列名

本帖最后由 futui 于 2022-12-12 14:52 编辑

data = [,
,
,
,
,
]
df = pd.DataFrame(data = data,columns=['A','B','C','D'])

#新增字母列
df["zm"] = ""

想通过B列的值(数字)得到列名(0 代表 A ,1 代表 B ,2 代表 C ,3 代表 D )

df.loc[~pd.isna(df['B']),'zm'] = df.loc[~pd.isna(df['B']),'B']      #只能求出字母列的数字,想用下句直接求报错

#df.loc[~pd.isna(df['B']),'zm'] = df.columns(df.loc[~pd.isna(df['B']),'B'])   #想通过这句得到列名,但 会报错,要怎么处理?
求大神帮忙!谢谢

我还发不了相片,我的字母列应该长这样:
B
A
B

C
D

cflying 发表于 2022-12-12 17:13:14

本帖最后由 cflying 于 2022-12-12 17:26 编辑

我理解已知数据组中某列有0,1,2,3,4等数据,现在是想在旁边根据对照关系匹配出一列新数据ABCD吗?
如果是,则df1是原始数据,df2是匹配关系,然后两个merge就可以出一个新数据列
如果是想根据匹配关系自动填充NA,则可以先把匹配关系map后,然后利用fillna进去就行

确实没咋理解来意思,我感觉是第一个

阿奇_o 发表于 2022-12-12 18:11:22

本帖最后由 阿奇_o 于 2022-12-12 18:13 编辑

# 空值(缺失值/异常值)一般都是先处理的,否则后面其他各种计算都可能受干扰或无法进行
df['zm'] = df.B.fillna('nan').replace(dict(zip(, 'ABCD ')))

df.zm
0    B
1    A
2    B
3   
4    C
5    D
Name: B, dtype: object
页: [1]
查看完整版本: 求大神看下,如何才能由数字得到列名