excel 如何使用Python将同一行中的多列转换为另一行?

dy1byipe  于 2022-11-26  发布在  Python
关注(0)|答案(1)|浏览(172)

我有一个Excel文件,其中有多个标题名称作为列在同一行中的数据,我需要排序数据,并将列名转换为行,并将其分配给“列名”下的数据
enter image description here
我的预期输出是这样的:
enter image description here
我不知道该怎么开始,有人能帮忙吗?
编辑:抱歉关于img的描述,我是新来的

mrphzbgm

mrphzbgm1#

您可以通过列b检查具有新列值名称的行以测试缺失值,通过Series.where将不匹配的a列值替换为缺失值并向前填充缺失值,使用反转掩码和DataFrame.loc中的列a,c进行最后筛选:

df = pd.read_excel('file.xlsx')

#sample data
print (df)
      a    b                c
0    IT  NaN              NaN
1  User  1.0  user1@gmail.com
2  Data  NaN              NaN
3  User  1.0  user5@gmail.com
4  User  1.0  user2@gmail.com

m = df['c'].isna()
df['a'] = df['a'].where(m).ffill()

df = df.loc[~m, ['a','c']]
print (df)
      a                c
1    IT  user1@gmail.com
3  Data  user5@gmail.com
4  Data  user2@gmail.com

相关问题