簡體   English   中英

pandas wide_to_long IndexError 是什么意思?

[英]What does pandas wide_to_long IndexError mean?

我無法使用pd.wide_to_long()方法將數據從寬格式轉換為長格式。 錯誤讀取IndexError: Too many levels: Index has only 1 level, not 2

我的代碼:

import pandas as pd

df = pd.read_csv('data/data.csv', index_col=False)
print(df)


df.reset_index(inplace=True,drop=True)
df['ID'] = df.index
pd.wide_to_long(df, ['OT_', 'NT_'], i='ID', j=['MISS', 'HIT', 'CR', 'FA']).reset_index().rename(columns={'OT_': 'OT', 'NT_': 'NT'})

CSV(它只是垃圾數據):

PID,OT_MISS,OT_HIT,OT_CR,OT_FA,NT_MISS,NT_HIT,NT_CR,NT_FA
111,0.1,0.23,0.56,0.11,0.9,1.0,0.92,0.68
121,0.1,0.23,0.56,0.11,0.9,1.0,0.92,0.68
212,0.1,0.23,0.56,0.11,0.9,1.0,0.92,0.68
321,0.1,0.23,0.56,0.11,0.9,1.0,0.92,0.68
423,0.1,0.23,0.56,0.11,0.9,1.0,0.92,0.68
534,0.1,0.23,0.56,0.11,0.9,1.0,0.92,0.68
621,0.1,0.23,0.56,0.11,0.9,1.0,0.92,0.68
721,0.1,0.23,0.56,0.11,0.9,1.0,0.92,0.68
812,0.1,0.23,0.56,0.11,0.9,1.0,0.92,0.68
922,0.1,0.23,0.56,0.11,0.9,1.0,0.92,0.68

在熊貓中,您可以使用melt() 函數將數據從寬格式轉換為長格式,如下所示:

df2=pd.melt(df, ['OT_', 'NT_'], i='ID', j=['MISS', 'HIT', 'CR', 'FA']).reset_index().rename(columns={'OT_': 'OT', 'NT_': 'NT'})
  • 問題是pandas.wide_to_long沒有正確識別后綴, i應該是'PID'而不是'ID' ,而j應該是一個字符串。
  • '\\w+'是獲取一個或多個單詞字符的正則表達式
import pandas as pd

df2 = pd.wide_to_long(df, ['OT', 'NT'], i='PID', j='stubs', sep='_', suffix='\w+')

print(df2)

             OT    NT
PID stubs            
111 MISS   0.10  0.90
121 MISS   0.10  0.90
212 MISS   0.10  0.90
321 MISS   0.10  0.90
423 MISS   0.10  0.90
534 MISS   0.10  0.90
621 MISS   0.10  0.90
721 MISS   0.10  0.90
812 MISS   0.10  0.90
922 MISS   0.10  0.90
111 HIT    0.23  1.00
121 HIT    0.23  1.00
212 HIT    0.23  1.00
321 HIT    0.23  1.00
423 HIT    0.23  1.00
534 HIT    0.23  1.00
621 HIT    0.23  1.00
721 HIT    0.23  1.00
812 HIT    0.23  1.00
922 HIT    0.23  1.00
111 CR     0.56  0.92
121 CR     0.56  0.92
212 CR     0.56  0.92
321 CR     0.56  0.92
423 CR     0.56  0.92
534 CR     0.56  0.92
621 CR     0.56  0.92
721 CR     0.56  0.92
812 CR     0.56  0.92
922 CR     0.56  0.92
111 FA     0.11  0.68
121 FA     0.11  0.68
212 FA     0.11  0.68
321 FA     0.11  0.68
423 FA     0.11  0.68
534 FA     0.11  0.68
621 FA     0.11  0.68
721 FA     0.11  0.68
812 FA     0.11  0.68
922 FA     0.11  0.68

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM