Pandas:将列表拆分为行

2024-05-20 20:45:35 发布

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

我有3个列表id\u list version\u list和phases\u list,我使用方法提取了它们。 我的代码是

a = pd.DataFrame(id_list, columns = ['ID'])
b = pd.DataFrame(version_list, columns = ['Version'])
c = pd.DataFrame(phases_list, columns = ['Required'])

x = pd.concat([a,b,c], axis=1, sort=False)
df2 = x.to_excel('df2.xlsx')

输出是

  id     version  required  
0 X Y Z  1 2 3    tur mir tur

但我想要这样

  id      version     required
0 X        1           tur
1 Y        2           mir
2 Z        3           tur

我怎样才能在熊猫身上做到这一点

还有一个问题是我用索引值提取了数据,所以列表有点像6 X 17 Y 20 Z,版本和必需的列都有索引值,如何从列表中删除索引号

所以现在


Tags: columns方法代码iddataframe列表versionrequired
3条回答

这是另一种选择——我喜欢@Yo_Chris的解决方案:

m = zip(*[v.array[0].split() for k,v in df.items()])
pd.DataFrame(m).set_axis(df.columns,axis=1)

    id  version required
0   X   1   tur
1   Y   2   mir
2   Z   3   tur

您需要的可能是使用dict的构造函数:

df = pd.DataFrame({'ID': id_list, 'Version': version_list, 'Required': phases_list})
# stack your frame, split on your separator, reset_index and transpose
df.stack().str.split(' ', expand=True).reset_index(level=0, drop=True).T

    id version required
0    X       1      tur
1    Y       2      mir
2    Z       3      tur

相关问题 更多 >