中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

pandas如何實現寬表變窄表

發布時間:2020-08-04 11:05:12 來源:億速云 閱讀:203 作者:小豬 欄目:開發技術

小編這次要給大家分享的是pandas如何實現寬表變窄表,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

我就廢話不多說了,還是直接看代碼吧!

import pandas as pd
# 偽造一些數據
fake_data = {'subject':['math', 'english'],
      'A': [88, 90],
      'B': [70, 80],
      'C': [60, 78]}

# 寬表
test = pd.DataFrame(fake_data, columns=['subject', 'A', 'B', 'C'])
test
	subject	A	B	C
0	math	88	70	60
1	english	90	80	78

# 轉換為窄表
pd.melt(test, id_vars=['subject'])

subject	variable	value
0	math	A	88
1	english	A	90
2	math	B	70
3	english	B	80
4	math	C	60
5	english	C	78

補充知識:pandas從單條目數據集生成寬表

需求

場景

從醫院數據庫中導出了大量的體檢數據,但體檢數據表中,每一行代表某人某次體檢的某一項體檢的結果。目的想將每一個人的每一次體檢結果作為一行存儲,每一列為體檢項。

示例

StuIDTypeNum
0111021Math89
1111021English93
2312983English91
3314621English82
4314621Math92
5112341Math82

目的:轉換成如下表格

StuIDEnglishMath
01110219389
131298391NaN
23146218292
3112341NaN82

方案一

pandas如何實現寬表變窄表

具體代碼如下

#將'B'列的類別調整為行。
#1
num = df[~df.duplicated(subset=['StuID'])].loc[:,'StuID'].to_list()
#2
result_df = pd.DataFrame({'StuID': np.array(num)},columns=['StuID','English','Math'])
#3
for i in df.index:
  t = df.loc[i,'Type']
  num = df.loc[i,'StuID']
  result_df.loc[result_df['StuID'] == num,[t]] = df.loc[i,'Num']
print(result_df)

結果

pandas如何實現寬表變窄表

看完這篇關于pandas如何實現寬表變窄表的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

奉贤区| 淳化县| 阜南县| 红河县| 石嘴山市| 册亨县| 江北区| 磴口县| 江安县| 长春市| 永顺县| 尼勒克县| 南岸区| 盐源县| 西乌珠穆沁旗| 阿拉善盟| 郑州市| 哈巴河县| 台东县| 固原市| 岱山县| 诏安县| 梅河口市| 汝州市| 全南县| 虎林市| 兴城市| 股票| 白朗县| 济源市| 阿拉善左旗| 铅山县| 宜兰县| 绍兴市| 日土县| 明水县| 乃东县| 桃园市| 惠安县| 陆丰市| 永昌县|