【问题标题】:Weave columns in data frame using zip [duplicate]使用 zip 在数据框中编织列 [重复]
【发布时间】:2019-08-15 14:16:51
【问题描述】:

我有一个包含xyzx2y2z2 列的数据框。

我想做的是将列编织在一起,使它们看起来像:

x  y  z
x2 y2 z2

例如:

x   y   z   x2  y2  z2
1   1   1   2   2   2
2   2   2   3   3   3
3   3   3   4   4   4

我希望它看起来像这样:

x   y   z
1   1   1
2   2   2
2   2   2
3   3   3
3   3   3
4   4   4

有没有办法用 zip 函数来完成这个?

【问题讨论】:

  • 您要合并,同时说出xx2,然后对它们的值进行排序吗?
  • def to_array(dataframe): weaved = np.empty((len(dataframe) * 2, 3)) weaved[0::2] = dataframe[['x', 'y', 'z']].values weaved[1::2] = dataframe[['x2', 'y2', 'z2']].values return weaved # 我已经用函数完成了这个,但我想知道是否zip 也可以,如果它更简单的话。

标签: python pandas


【解决方案1】:

是的!它被称为reshape,可以由 Numpy 完成。看看这个:

pd.DataFrame(df.values.reshape(-1, 3), columns=df.columns[:3]) 

【讨论】:

  • 请考虑支持我的答案并将其选为已接受的答案!谢谢
  • 使用 zip 也可以做到这一点吗?瓦莱斯普
  • -1 是什么意思?顺便说一句,很好的解决方案
  • O 不知道如何使用 zip。 -1 表示在给定另一个的情况下自动计算该尺寸:)
猜你喜欢
  • 1970-01-01
  • 2021-07-05
  • 2023-03-10
  • 2015-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
  • 1970-01-01
相关资源
最近更新 更多