|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 futui 于 2022-12-12 14:52 编辑
data = [[23.3,1,4,8],
[40.18,0,38.41,37.0],
[48.52,1,49.82,2],
[63.9,None,65.4,3],
[34.51,2,36, 1],
[None,3,47.2,46.14]]
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
本帖最后由 阿奇_o 于 2022-12-12 18:13 编辑
- # 空值(缺失值/异常值)一般都是先处理的,否则后面其他各种计算都可能受干扰或无法进行
- df['zm'] = df.B.fillna('nan').replace(dict(zip([0.0, 1.0, 2.0, 3.0, 'nan'], 'ABCD ')))
- df.zm
- 0 B
- 1 A
- 2 B
- 3
- 4 C
- 5 D
- Name: B, dtype: object
复制代码
|
|