日韩性视频-久久久蜜桃-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()如何实现行转列的问题(代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲AV无码AV吞精久久中文版 | 偷拍一区二区三区四区 | 香蕉黄色片 | 国产精品亚洲二区在线观看 | 欧美一区二区三区久久久 | 日本xxxx高清 | 免费看av在线 | 午夜黄色一级片 | 亚洲第一自拍 | 91欧美日韩麻豆精品 | 97自拍网| 国产在线不卡 | 久久一区精品 | 在线视频这里只有精品 | av中出| 中文字幕日韩在线观看 | 亚洲熟妇无码av | 依人99 | ,亚洲人成毛片在线播放 | 在线看片网址 | 99热国| 91国语对白 | 国产欧美一区二区三区在线老狼 | 日韩性网| 邻居校草天天肉我h1v1 | 我要看18毛片 | 亚洲精品男人的天堂 | 鲁片一区二区三区 | 99re在线观看视频 | 日韩a∨ | 福利在线网站 | 色婷婷在线视频 | 偷操 | 精彩视频一区二区三区 | 99久久国产宗和精品1上映 | 小视频在线播放 | 欧美一区二区网站 | 人妻一区二区三区在线 | 黄av网| 亚洲女同志亚洲女同女播放 | 杨贵妃颤抖双乳呻吟求欢小说 | 欧美高清性xxxxhdvideosex | 成人特级毛片69免费观看 | 欧av在线 | 大黑人交xxx极品hd | 美女被男人插 | 精品久久久久一区二区国产 | 日韩福利片在线观看 | 亚洲 欧美 国产 另类 | www日本黄色 | 亚洲精品久久久久久久久久久 | 青青草97国产精品麻豆 | 青青草视频在线看 | 蜜桃91麻豆精品一二三区 | 秋霞7777鲁丝伊人久久影院 | 九九色网站 | 韩国精品视频在线观看 | 欧美高清性xxxxhd | 日本理论片午伦夜理片在线观看 | 91精品久久久久久粉嫩 | 免费三级黄 | 久久精品视频1 | 黄色一级大片免费版 | 国产15页 | 天堂av在线电影 | 亚洲免费在线视频观看 | 国产区在线观看 | 色综合久久精品亚洲国产 | 自拍欧美日韩 | 色婷婷狠狠18禁久久 | 国产无遮挡呻吟娇喘视频 | 麻豆网站免费观看 | 日本一二三区在线视频 | jizz高潮| 少妇人妻偷人精品视频蜜桃 | 91视频99| 短视频在线观看 | 国产乱国产乱 | 久一区二区三区 | 一级片美女 | 黄色成人在线网站 | 青青草原av在线 | 成人乱人乱一区二区三区一级视频 | 久久久看 | 久久av高潮av无码av喷吹 | 超碰av男人的天堂 | 中文在线字幕免费观 | 国产精品午夜在线观看 | 精品人妻一区二区三区免费看 | 亚洲欧美日韩成人 | 福利一区在线观看 | 好吊在线视频 | 午夜精品久久久久久久99老熟妇 | 抱着老师的嫩臀猛然挺进视频 | 国产日韩精品在线观看 | 久久亚洲一区二区三区四区五区 | av男人网 | 亚洲影音 | 北条麻妃二三区 |