我有一个如下所示的数据框:
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)))
任何人都可以建议我如何对具有多列但只有一行输出的数据帧执行转置。谢谢。
答案 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
不会执行作业,因为它会寻找默认索引,即在这种情况下为零作为列。
希望这对您有所帮助。