簡體   English   中英

根據值划分行

[英]Divide rows based on value

我有一個看起來像這樣的DataFrame

id  question    feedback    answer  correct False_Answer01  False_Answer02  False_Answer03
1       q1      f1          a1-1        1          NaN           NaN            NaN
1       q1      f1          a1-2        0          NaN           NaN            NaN
1       q1      f1          a1-3        0          NaN           NaN            NaN
1       q1      f1          a1-4        0          NaN           NaN            NaN
2       q2      f2          a2-1        1          NaN           NaN            NaN

我想在False Answer列中插入所有False Answers -False Answer是correct == 0的答案。所以我想要這樣的東西

id  question    feedback    answer  False_Answer01  False_Answer02  False_Answer03
1       q1      f1          a1-1         a1-2           a1-3             a1-4  

我該怎么辦?

這更像是一個pivot問題

df1=df.query('correct==1').copy()
df2=df.query('correct==0').copy()
df2['key']=df2.groupby(['id','question','feedback']).cumcount()+1
df2=df2.pivot_table(index=['id','question','feedback'],columns='key',values='answer',aggfunc='sum').add_prefix('False_Answer')
df=df1.dropna(1).merge(df2.reset_index(),how='left')
df
Out[388]: 
   id question feedback      ...       False_Answer1  False_Answer2  False_Answer3
0   1       q1       f1      ...                a1-2           a1-3           a1-4
1   1       q2       f2      ...                 NaN            NaN            NaN
[2 rows x 9 columns]

暫無
暫無

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

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