python - Pandas - 执行多列转置

标签 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)))

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

最佳答案

如果您的数据框构造是您在帖子中显示的多列和单行的方式,那么只需将索引设置为您的第一列,在您的情况下为“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 不会执行该作业,因为它会寻找默认索引,即本例中的零作为列。

希望这对您有所帮助。

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

相关文章:

python-3.x - VS Code 调试 python 脚本配置忽略 args 属性

python - 转换 DataFrame 以获取给定小时内的记录数

python - 尽管语法正确,但 Memoryview 中的切片分配会引发 ValueError

python - Pandas 使用除法按聚合分组

python - 如何在没有更改参数值的返回值的情况下模拟/修补函数?

即使输入正确,Python JSON 模块也会出错

python - 如何使用docker-py向docker容器添加参数

python - 问 : Pandas dataframe from for loop

Python pandas 用不同的名称保存多个 CSV

python - Django 1.4 SimpleListFilter 'selected' 选项问题