python - 如何将行转换为 Pandas 中的列?

标签 python pandas

我想将 DataFrame 的每三行转换为列。

输入:

import pandas as pd  
df = pd.DataFrame({'a': [1,2,3,11,12,13],'b':['a','b','c','aa','bb','cc']})
print(df)

输出:

    a   b
0   1   a
1   2   b
2   3   c
3  11  aa
4  12  bb
5  13  cc

预期:

   a1  a2  a3  b1  b2  b3
0   1   2   3   a   b   c
1  11  12  13  aa  bb  cc

最佳答案

使用set_index通过楼层划分和模 3unstack并展平 MultiIndex:

a = np.arange(len(df))
#if default index
#a = df.index
df1 = df.set_index([a // 3, a % 3]).unstack()
#python 3.6+ solution
df1.columns = [f'{i}{j + 1}' for i,j in df1.columns]
#python bellow 3.6
#df1.columns = ['{}{}'.format(i,j+1) for i,j in df1.columns]
print (df1)
   a1  a2  a3  b1  b2  b3
0   1   2   3   a   b   c
1  11  12  13  aa  bb  cc

关于python - 如何将行转换为 Pandas 中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53580040/

相关文章:

Python重命名文件很奇怪

python - 多个向量对的 Numpy 和点积 : how can it be done?

python - 动态比较常见事件的列表

python - 按第二列重新排序 Pandas 数据框

Pandas 不将单个行条目注册为单个列条目

python - Plotly:用单一颜色的填充和线条绘制面积图

python - 为什么低于 0.25 的 time() 会跳过 Python 中的动画?

python - 使用 for 循环在单个图中显示多个图表

python - 类型错误 : only integer scalar arrays can be converted to a scalar index while calculating the RMSE

python - 无返回值的单元测试函数