当前位置: 首页 > 知识库问答 >
问题:

如何转置行到列在熊猫?

施知
2023-03-14

我正在将SQL查询的结果写入Excel工作表,并尝试将行转换为列,但似乎无法让Pandas移动;Excel似乎存在某种难题。我看过:

如何在数据帧中切换列和行

在groupby之后,如何将dataframe中的行值转换为Python中的列标签?

在Python中将列转换为行

Python:将行转换为列标题

似乎都不起作用。

import psycopg2
import pandas as pd
import xlsxwriter

try:
    conn = psycopg2.connect(private stuff cannot be shared)
except:
    print ("I am unable to connect to the database")

cursor = conn.cursor()

writer = pd.ExcelWriter("Z:/AWS/SQLQueries/Phoebe's Request.xlsx",engine = 'xlsxwriter')

query20 = """SELECT 2 AS rowtype
 , source AS "TrafficTypes_Name"
 , COUNT(source) AS "Traffic"
 , to_char(week,'MM/dd/yyyy') AS "Week_Ending"
FROM amazon.tracker
where project_id = 'PCR'
GROUP 
BY source
 , to_char(week,'MM/dd/yyyy')
UNION ALL
SELECT 1 
 , 'Visitor Center Walk-ins'
 , COUNT(source)
 , to_char(week,'MM/dd/yyyy') as week 
FROM amazon.tracker
where project_id = 'PCR'
GROUP 
BY to_char(week,'MM/dd/yyyy')
ORDER 
BY "Week_Ending"
 , rowtype"""

cursor.execute(query20)

result = cursor.fetchall()

first = pd.DataFrame(result, columns = ["rowtype","TrafficTypes_Name","Traffic","Week_Ending"])

first.drop(first.columns[0],axis=1, inplace = True)

first.pivot(index = 'Week_Ending', columns = 'TrafficTypes_Name' , values = 'Traffic' )

first.to_excel(writer, sheet_name = 'Visitor Traffic',index = False)

print ("Query 20 Created")

writer.save()

Excel表格:

TrafficTypes_Name       Traffic          Week_Ending

Visitor Center Walk-ins   18             01/01/2017
Resident Referral          1             01/01/2017
Community Website          1             01/01/2017
Realtor                    1             01/01/2017
Other Website              1             01/01/2017
Social Media               1             01/01/2017
Builder                    3             01/01/2017
Drive-by                   10            01/01/2017

请求

Week_Ending    Visitor Center Walk-ins       Resident Referral         Community Website            Realtor  ....................
01/01/2017          18                        1                           1                             1  .........................

共有1个答案

舒阳州
2023-03-14

Pivot会在这里工作的

df1 = df.pivot(index='Week_Ending', columns='TrafficTypes_Name', values='Traffic')


TrafficTypes_Name   Builder CommunityWebsite    Drive-by    OtherWebsite    Realtor ResidentReferral    SocialMedia VisitorCenterWalk-ins
Week_Ending                             
01/01/2017          3       1                   10          1               1       1                   1            18
 类似资料:
  • 问题内容: 我不确定是否可以使用内置的PIG脚本完成此操作,或者我需要编写UDF代码。但实际上我有一个表,我只想在其中转置数据。 简单地说,给出: 我最终会得到: 关于如何实现此目标的任何建议? 问题答案: 用Pig不可能做到这一点,也没有任何意义。请记住,关系是一包元组,根据定义,不保证包中的元组具有任何特定顺序。您可以从开始 但是从Pig的角度来看,这与 这意味着“转置”定义不正确。以这种方式

  • 问题内容: 我是脚本新手。我有一个表(),我需要创建另一个表,该表的Table1行按列排列,反之亦然。我已经找到了针对Perl和SQL而不是针对Python的解决方案。 我两天前才开始学习Python,所以据我所知: 这只是将列复制为列。我现在想做的是将最后一行写为,但是似乎没有这样的命令,而且我还没有找到将行写为列的另一种方法。 问题答案: 通常,转置可迭代序列的解决方案是:zip(* orig

  • 我有一个列表的字典(等长),我想把它转换成一个数据帧,这样字典中的每个键代表数据帧中的一列(或一系列),并且对应于每个键的值列表被转换成数据帧中的单个记录专栏。 假设词典的内容是: 我希望dataframe的内容是: 我尝试通过首先将字典转换为数据帧,然后对数据帧进行转置来解决这个问题。 这给出了以下输出: 我不知道如何进一步进行。

  • 请考虑下表:对于每个代码,每一个状态都有一些值。 现在我想以这样的方式转置表,使成为列: 我不能让它工作,只转置那个特定的列。 在熊猫身上实现这一目标的好办法是什么?

  • 问题内容: 我有以下数据框: 我尝试过数据透视表 但出现以下错误: 数据透视表的任何替代选择吗? 问题答案: 您可以用来转置数据框。这将数据框切换为圆形,以便行变为列。 您也可以使用。

  • 问题内容: 我想转置HTML表格中的行和列,即将行作为列,将列作为行。 我可以用什么方式做到这一点? 范例: 如 问题答案: HTML: js: