日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python行转列_pandas.DataFrame中pivot()如何实现行转列的问题(代码)

發布時間:2024/1/23 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python行转列_pandas.DataFrame中pivot()如何实现行转列的问题(代码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章給大家帶來的內容是關于pandas.DataFrame中pivot()如何實現行轉列的問題(代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

示例:

有如下表需要進行行轉列:

代碼如下:# -*- coding:utf-8 -*-

import pandas as pd

import MySQLdb

from warnings import filterwarnings

# 由于create table if not exists總會拋出warning,因此使用filterwarnings消除

filterwarnings('ignore', category = MySQLdb.Warning)

from sqlalchemy import create_engine

import sys

if sys.version_info.major<3:

reload(sys)

sys.setdefaultencoding("utf-8")

# 此腳本適用于python2和python3

host,port,user,passwd,db,charset="192.168.1.193",3306,"leo","mysql","test","utf8"

def get_df():

global host,port,user,passwd,db,charset

conn_config={"host":host, "port":port, "user":user, "passwd":passwd, "db":db,"charset":charset}

conn = MySQLdb.connect(**conn_config)

result_df=pd.read_sql('select UserName,Subject,Score from TEST',conn)

return result_df

def pivot(result_df):

df_pivoted_init=result_df.pivot('UserName','Subject','Score')

df_pivoted = df_pivoted_init.reset_index() # 將行索引也作為DataFrame值的一部分,以方便存儲數據庫

return df_pivoted_init,df_pivoted

# 返回的兩個DataFrame,一個是以姓名作index的,一個是以數字序列作index,前者用于unpivot,后者用于save_to_mysql

def unpivot(df_pivoted_init):

# unpivot需要進行df_pivoted_init二維表格的行、列索引遍歷,需要拼SQL因此不能使用save_to_mysql存數據,這里使用SQL和MySQLdb接口存

insert_sql="insert into test_unpivot(UserName,Subject,Score) values "

# 處理值為NaN的情況

df_pivoted_init=df_pivoted_init.add(0,fill_value=0)

for col in df_pivoted_init.columns:

for index in df_pivoted_init.index:

value=df_pivoted_init.at[index,col]

if value!=0:

insert_sql=insert_sql+"('%s','%s',%s)" %(index,col,value)+','

insert_sql = insert_sql.strip(',')

global host, port, user, passwd, db, charset

conn_config = {"host": host, "port": port, "user": user, "passwd": passwd, "db": db, "charset": charset}

conn = MySQLdb.connect(**conn_config)

cur=conn.cursor()

cur.execute("create table if not exists test_unpivot like TEST")

cur.execute(insert_sql)

conn.commit()

conn.close()

def save_to_mysql(df_pivoted,tablename):

global host, port, user, passwd, db, charset

"""

只有使用sqllite時才能指定con=connection實例,其他數據庫需要使用sqlalchemy生成engine,engine的定義可以添加?來設置字符集和其他屬性

"""

conn="mysql://%s:%s@%s:%d/%s?charset=%s" %(user,passwd,host,port,db,charset)

mysql_engine = create_engine(conn)

df_pivoted.to_sql(name=tablename, con=mysql_engine, if_exists='replace', index=False)

# 從TEST表讀取源數據至DataFrame結構

result_df=get_df()

# 將源數據行轉列為二維表格形式

df_pivoted_init,df_pivoted=pivot(result_df)

# 將二維表格形式的數據存到新表test中

save_to_mysql(df_pivoted,'test')

# 將被行轉列的數據unpivot,存入test_unpivot表中

unpivot(df_pivoted_init)

結果如下:

關于Pandas DataFrame類自帶的pivot方法:

DataFrame.pivot(index=None, columns=None, values=None):

Return reshaped DataFrame organized by given index / column values.

這里只有3個參數,是因為pivot之后的結果一定是二維表格,只需要行列及其對應的值,而且也因為是二維表格,unpivot之后is_pass列是肯定會丟失的,因此一開始我就沒查這個列。

總結

以上是生活随笔為你收集整理的python行转列_pandas.DataFrame中pivot()如何实现行转列的问题(代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天操天天爽天天射 | 国产美女免费 | 国产精品无码久久久久久电影 | 国产不卡在线观看视频 | 国产1区 | 精品性久久 | 玉女心经在线看 | 在线观看无遮挡 | 亚洲国产视频网站 | 99激情| 香蕉视频最新网址 | 美女张开腿让男人操 | 日韩美女毛片 | 欧美 亚洲 激情 一区 | 成人在线观看国产 | 男女天堂av | 六月天综合网 | 黄色永久视频 | xxx黄色片 | 狠狠躁夜夜躁人 | 日本一级吃奶淫片免费 | 99国产视频在线 | 加勒比av在线播放 | 天天精品综合 | av色片| 国产在线播放一区 | 高清免费av | 免费毛片在线播放免费 | 大尺度做爰呻吟舌吻网站 | 欧美福利影院 | 国产在线视频91 | 精品97人妻无码中文永久在线 | 丝袜熟女一区二区三区 | 国精产品一区二区 | www.波多野结衣.com | 久久黄色片视频 | av大片网站| 春色激情站 | 日韩av男人的天堂 | 114国产精品久久免费观看 | 国产精品毛片一区二区三区 | 日本激情影院 | 天天添天天操 | 农村少妇久久久久久久 | 精品久久一区二区 | 中文字幕免费视频观看 | 91蜜桃婷婷狠狠久久综合9色 | 先锋影音制服丝袜 | av影库| 午夜影视免费 | 护士的小嫩嫩好紧好爽 | 精品免费| 26uuu精品一区二区在线观看 | 欧美黄色一级大片 | 91精品国| 中文字幕av在线免费观看 | 中文字幕在线2019 | 欧美做爰猛烈床戏大尺度 | 免费久久一级欧美特大黄 | 日韩精品人妻中文字幕有码 | 狠狠干狠狠插 | 欧美激情一区二区三区在线 | 综合色亚洲 | 富婆如狼似虎找黑人老外 | 亚洲成a人在线观看 | 日韩精品影视 | 国产口爆吞精一区二区 | 99免费在线观看视频 | 亚洲春色在线观看 | 中文字幕第三页 | 床戏高潮做进去大尺度视频网站 | 免费成年人视频 | 黄a大片 | 久久精品国产亚洲AV高清综合 | 日本美女性生活视频 | 深爱激情av | 精品一区视频 | 欧美日韩在线视频一区二区 | 国产亚州av | 黄色av影院| 久久成人综合网 | 手机在线看片国产 | 风间ゆみ大战黑人 | 中日韩黄色大片 | 给我看高清的视频在线观看 | 91资源在线播放 | 深夜福利一区二区 | 欧美射射射| 欧美综合在线一区 | 国产视频精选 | 国产精华7777777 | 日本一区免费电影 | 夫妻自拍偷拍 | 欧美黄色a级片 | 色激情五月 | 亚洲免费黄色片 | 国产强被迫伦姧在线观看无码 | 性xxx欧美| 久久一区二区三区四区五区 |