如何使用钯熔体在Python中Pandas

2024-05-18 19:14:36 发布

您现在位置:Python中文网/ 问答频道 /正文

来自csv的此数据帧:

id  name    A   B   C   gpa
0   1111    Phineas NaN B   NaN 3.0
1   1113    Tilly   NaN NaN C   2.5
2   1110    Andres  A   NaN NaN 3.8
3   1112    Jax NaN B   NaN 3.2
4   1114    Ray NaN B   NaN 3.1
5   1115    Koda    NaN NaN C   2.4
6   1120    Bruno   A   NaN NaN 3.7
7   1134    Davis   NaN NaN C   2.6
8   1102    Cassie  A   NaN NaN 4.0

我想要输出:

^{pr2}$

密码是什么?在


Tags: csv数据nameidnangparaydavis
2条回答

^{}^{}一起使用,在这种情况下,不需要melt

df['grade'] = df['A'].combine_first(df['B']).combine_first(df['C'])
df.drop(['A','B','C'], axis=1, inplace=True)

或者:

^{pr2}$
print(df)
     id     name  gpa grade
0  1111  Phineas  3.0     B
1  1113    Tilly  2.5     C
2  1110   Andres  3.8     A
3  1112      Jax  3.2     B
4  1114      Ray  3.1     B
5  1115     Koda  2.4     C
6  1120    Bruno  3.7     A
7  1134    Davis  2.6     C
8  1102   Cassie  4.0     A

如果您不想使用melt,这个解决方案可能对您有用:因为每个学生都有A、B或C独占的值,您可以首先将这些列中的所有NaN值转换为空字符串,然后使用+运算符将A、B和C列连接在一起

导入语句和起始数据帧:

import pandas as pd
import numpy as np

df = pd.DataFrame({'id':[1111,1113],
'name':['Phineas','Tilly'],
'A':[np.NaN,np.NaN],
'B':['B',np.NaN],
'C':[np.NaN,'C'],
'gpa':[3.0,2.5]
})
#     id      name    A   B   C   gpa
# 0   1111    Phineas NaN B   NaN 3.0
# 1   1113    Tilly   NaN NaN C   2.5

列式字符串串联和输出:

^{pr2}$

相关问题 更多 >

    热门问题