gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 02:39:44 24 4
gpt4 key购买 nike

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

how to switch columns rows in a pandas dataframe

How to convert rows values in dataframe to columns labels in Python after groupby?

Convert column to row in Python Pandas

Python Pandas: Convert Rows as Column headers

似乎都不起作用。

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 .........................

最佳答案

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

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com