【问题标题】:How to append row 2 to row 1 in pandas如何在熊猫中将第 2 行附加到第 1 行
【发布时间】:2017-10-07 15:52:06
【问题描述】:

例如下面的数据框我有 4 行

A    B    C
a    b    c
D    E    F
d    e    f

我想将第 3 行追加到第 1 行,将第 4 行追加到第 2 行以形成六列行,即

A    B    C    D    E    F
a    b    c    d    e    f

如何在 pandas 中实现?

【问题讨论】:

  • 你只有两行吗?
  • 如果你有 n 行,你想要的输出是什么?
  • @CharlieSiu 请edit您的问题,而不是添加澄清作为评论。
  • 对不起,我的问题不清楚。已修改。
  • 最好的办法是添加带有索引和列的数据框。不仅仅是价值观。这会导致混乱。

标签: python pandas


【解决方案1】:

更新:

来源 DF:

In [47]: df
Out[47]:
   0  1  2
0  A  B  C
1  a  b  c
2  D  E  F
3  d  e  f

解决方案:

In [46]: pd.DataFrame(np.stack([df.iloc[::2].values.ravel(),
                                df.iloc[1::2].values.ravel()])) \
           .add_prefix('col')
Out[46]:
  col0 col1 col2 col3 col4 col5
0    A    B    C    D    E    F
1    a    b    c    d    e    f

旧答案:原答案,已更改...

IIUC:

In [23]: pd.DataFrame(df.values.reshape(1,-1), columns=np.arange(1, df.size+1)) \
           .add_prefix('col')
Out[23]:
  col1 col2 col3 col4 col5 col6
0    A    B    C    D    E    F

如果您有多行,它总是会像这样将其重塑为单行 DF:

In [25]: df
Out[25]:
  col1 col2 col3
0    A    B    C
1    D    E    F
2    A    B    C
3    D    E    F

In [26]: pd.DataFrame(df.values.reshape(1,-1), columns=np.arange(1, df.size+1)) \
    ...:   .add_prefix('col')
Out[26]:
  col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12
0    A    B    C    D    E    F    A    B    C     D     E     F

或

In [33]: pd.DataFrame(df.values.reshape(-1,6), columns=np.arange(1, df.size//2+1)) \
    ...:   .add_prefix('col')
Out[33]:
  col1 col2 col3 col4 col5 col6
0    A    B    C    D    E    F
1    A    B    C    D    E    F

【讨论】:

  • 如果有 n 行,期望的输出是什么?
  • 一般情况下问题不清楚,一般情况下最好问作者你想要什么,可能是你的cmets或者只能放置偶数行,是模棱两可的。
  • 我认为 Op 想要将 3 列行变为 6 列行。但不清楚他的意思。
  • 好的,让我们等待OP的反应;-)
猜你喜欢
  • 2019-10-27
  • 2021-12-26
  • 2013-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 2018-09-29
  • 1970-01-01
相关资源
最近更新 更多