将Python Pandas中的数字向量列拆分为多列

18 浏览
0 Comments

将Python Pandas中的数字向量列拆分为多列

我在pandas中有一个数据框,其中有一列是一个向量:df = pd.DataFrame({'ID':[1,2], 'Averages':[[1,2,3],[4,5,6]]})。我希望将其拆分并分成如下所示的元素:df2 = pd.DataFrame({'ID':[1,2], 'A':[1,4], 'B':[2,5], 'C':[3,6]})。我尝试了df['Averages'].astype(str).str.split(' ')但没有成功。任何帮助都将不胜感激。

0
0 Comments

在Python中,使用Pandas库进行数据处理和分析时,有时会遇到将一个包含多个数字向量的列拆分成多个新列的需求。这种情况可能出现在处理数据集时,其中某一列包含了多个数值,而我们希望将每个数值分别放入新的列中。

解决这个问题的方法是使用Pandas的split函数,将包含多个数字向量的列拆分成多个新列。以下是一个示例代码,演示了如何使用split函数来实现这一目标:

df[['A','B','C']] = pd.DataFrame(df.averages.values.tolist(), index= df.index)

在这个示例中,`df`是一个Pandas的DataFrame对象,其中包含了一个名为`averages`的列,该列包含了多个数字向量。代码将`averages`列拆分成了`A`、`B`和`C`三个新列,并将拆分后的值赋给了DataFrame对象的相应列。

以上就是解决将Python中的Pandas数值向量列拆分成多个列的方法。通过使用Pandas的split函数,我们可以方便地实现这一需求,从而更好地处理和分析数据。

0
0 Comments

问题的原因是需要将一个包含数字的向量列拆分成多列,并且当前的代码没有包含"ID"列。

解决方法是使用pd.concat()函数将"ID"列和使用apply()函数将"Averages"列转化为多列的DataFrame进行连接。然后使用rename()函数对新生成的列进行重命名,将0改为"A",将1改为"B",将2改为"C"。

代码如下:

pd.concat([df['ID'], df['Averages'].apply(pd.Series)], axis=1).rename(columns={0: 'A', 1: 'B', 2: 'C'})

以上是解决问题的代码,它将列表数据转化为多列数据。在使用这段代码之前,需要了解如何在pandas中添加列和重命名列。不是所有的问题都可以通过在StackExchange上复制粘贴答案来解决。

感谢你的回答,我建议你编辑你的回答,包含对期望输出的解释。因为原问题中提供了期望的输出结果,所以如果你的答案能够产生这个期望的输出结果,就会更加有说服力。(注意,我不是原问题的提问者,我是因为它被推荐删除而作为编辑者遇到你的回答的。)

@exp1orer,谢谢你,我已经更新了回答。

0