亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將Excel兩列標題從列轉換為行數據框python

將Excel兩列標題從列轉換為行數據框python

qq_笑_17 2023-09-05 19:48:19
我有一個代碼可以將帶有兩個標題的數據的 Excel 文件轉換為數據幀。不知何故,我的代碼沒有達到我的預期:import pandas as pddf = pd.read_excel('excel_file.xlsx', sheet_name='Class', header=None, names= header_names, skiprows=2)不知怎的,我收到了一個奇怪的輸出:NaN NaN NaT        NaN      NaN NaT                       3  NaN NaT   2015-06-30        4  NaNETC。我不知道我做錯了什么。我的 Excel 文件的結構如下,但包含更多列。A                   B                   C   math                biology             physics                             01.06.2015  3       01.06.2015  3       01.06.2015  330.06.2016  4       30.06.2016  4       30.06.2016  415.06.2017  1       15.06.2017  3       15.06.2017  320.06.2018  3       20.06.2018  2       20.06.2018  515.06.2019  2       15.06.2019  3       15.06.2019  2預期的數據幀輸出應該是這樣的:date        grade   course  group01.06.2015  3       math    A30.06.2016  4       math    A15.06.2017  1       math    A20.06.2018  3       math    A15.06.2019  2       math    A01.06.2015  3       biology B30.06.2016  4       biology B15.06.2017  3       biology B20.06.2018  2       biology B15.06.2019  3       biology B01.06.2015  3       physics C30.06.2016  4       physics C15.06.2017  3       physics C20.06.2018  5       physics C15.06.2019  2       physics C
查看完整描述

1 回答

?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

僅通過讀取這些數據,您將無法獲得所顯示的輸出。此外,您還可以跳過包含課程和小組信息的 2 行。我要做的是:


import pandas as pd

df = pd.read_excel('stack.xlsx',header=None, skiprows=3)


df = pd.DataFrame(df)


0   1   2   3   4   5

0   01.06.2015  3   01.06.2015  3   01.06.2015  3

現在,更改列的名稱


df.columns=['math A','grade A', 'Bio B','grade B','physic C', 'grade C']



math A  grade A Bio B   grade B physic C    grade C

0   01.06.2015  3   01.06.2015  3   01.06.2015  3

之后,您可以迭代這些行并使用您想要的輸出創建一個新的數據框:)


像這樣的3個循環,你會得到你想要的,只要記住你不能用i = 0初始化,但i你將開始下一個循環,是你完成上一個循環的i


df_wanted = pd.DataFrame(columns=['date','grade','course','group'])

i = 0

for index,row in df[['math A','grade A']].iterrows():

    df_wanted.loc[i,'date'] = row[0]

    df_wanted.loc[i,'grade'] = row[1]

    df_wanted.loc[i,'course'] = 'math'

    df_wanted.loc[i,'group'] = 'A'

    i+=1


date    grade   course  group

0   01.06.2015  3   math    A


查看完整回答
反對 回復 2023-09-05
  • 1 回答
  • 0 關注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號