【问题标题】:How to stack and rename N successive columns in df如何堆叠和重命名 df 中的 N 个连续列
【发布时间】:2023-01-02 00:39:28
【问题描述】:

我将如何实现期望的输出如下所示?即,堆叠第一的3 列彼此下方,堆叠第二3 列彼此下方并重命名列。

d = {'A': [76, 34], 'B': [21, 48], 'C': [45, 89], 'D': [56, 41], 'E': [3, 2],
     'F': [78, 32]}
df = pd.DataFrame(data=d)
df.columns=['A', 'A', 'A', 'A', 'A', 'A']

输出

df
    A   A   A   A  A   A
0  76  21  45  56  3  78
1  34  48  89  41  2  32

期望的输出

   Z1  Z2
0  76  56
1  34  41
2  21  3
3  48  2
4  45  78
5  89  32

【问题讨论】:

    标签: pandas


    【解决方案1】:

    进入 numpy,重塑并创建一个新的数据框:

    pd.DataFrame(df.to_numpy().reshape((-1, 2), order='F'), columns = ['Z1','Z2'])
    Out[19]: 
       Z1  Z2
    0  76  56
    1  34  41
    2  21   3
    3  48   2
    4  45  78
    5  89  32
    

    【讨论】:

      猜你喜欢
      • 2016-11-04
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 2018-04-28
      • 2013-09-09
      • 1970-01-01
      • 2021-12-20
      • 1970-01-01
      相关资源
      最近更新 更多