python - Pandas 中的列到行

标签 python pandas dataframe transpose

我正在尝试在 pandas 中执行以下操作。对 pandas 这样做有什么建议吗?

In [1]: input  = pd.DataFrame({"X_1": [1], "X_2": [2], "X_3": [5], "Y_1": [1.2], "Y_2": [2.3], "Y_3": [3.4]})

In [2]: input
Out[2]: 
   X_1  X_2  X_3  Y_1  Y_2  Y_3
0    1    2    5  1.2  2.3  3.4

In [3]: output = pd.DataFrame({"X": [1,2,5], "Y": [1.2, 2.3, 3.4]})

In [4]: output
Out[4]: 
   X    Y
0  1  1.2
1  2  2.3
2  5  3.4

最佳答案

使用str.splitstack

df.columns = df.columns.str.split('_', expand=True)
df.stack().loc[0]

   X    Y
1  1  1.2
2  2  2.3
3  5  3.4

注意:索引是 [1, 2, 3] 匹配原始列。

关于python - Pandas 中的列到行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37840821/

相关文章:

python - Django 重定向到模板传递模型

python - 为什么结果总是在 2.87 左右

python - Pandas 追加行为

python - 如何将多行变成 Pandas 数据框中的多个标题标题

python - 如何创建一个列来告诉我另一列是否包含字母数字值?

python - PySpark groupby 多个时间窗口

python - 在 Pandas DF 中使用删除重复项,但根据首选项列表选择保留列

python - 如何消除棋盘伪影

python - 某些列的唯一值,DF pandas

python - pandas - 如何生成索引和数据的笛卡尔积?