熊猫-执行多列的转置

时间:2018-11-25 05:12:43

标签: python python-3.x pandas pandas-groupby

我有一个如下所示的数据框:

col1,col2,col3,col4
value1,value2,value3,value4

我正在尝试对它们执行转置功能以获取以下输出:

col1,value1
col2,value2
col3,value3
col4,value4

问题在于列的列表是动态的,并且取决于用户输入将各个列放在第一位。

使用以下查询获取用户请求的列列表:

cursor.execute('select {} from table'.format(', '.join(str(cols) for cols in col_names)))

任何人都可以建议我如何对具有多列但只有一行输出的数据帧执行转置。谢谢。

1 个答案:

答案 0 :(得分:1)

如果您的数据框构造是您在帖子中使用多列和单行显示的方式,则只需将索引设置为第一列(在本例中为“ col1”),然后将其转置。

数据框,如下所示:

df = pd.DataFrame({ 'col1':['value1'], 'col2':['value2'], 'col3':['value2'], 'col4':['value4']})

     col1    col2    col3    col4
0  value1  value2  value2  value4

您可以执行以下操作:

>>> df.set_index('col1',inplace=True) # First set the Index to `col1` + `inplace=True`

现在允许移调..

>>> df.T
col1  value1
col2  value2
col3  value2
col4  value4

一劳永逸:

>>> df.set_index('col1').T
col1  value1
col2  value2
col3  value2
col4  value4

注意: df.T不会执行作业,因为它会寻找默认索引,即在这种情况下为零作为列。

希望这对您有所帮助。