[英]Python dataframe tranpose a single value from every nth row into a new column
我有這些交替的時間行,我希望時間並排,名稱和值列總是多余的,所以我感興趣的唯一值是通過將這些值轉置為新列來保留時間列。 但我不知道如何優雅地做到這一點
前:
姓名 | 時間 | 價值 | 價值2 | |
---|---|---|---|---|
0 | 問 | 09:15 | 1 | |
1 | 問 | 09:16 | 0 | |
2 | 問 | 09:18 | 1 | |
3 | 問 | 09:19 | 0 | |
4 | 磷 | 22:30 | 1 | |
5 | 磷 | 23:20 | 0 |
后:
姓名 | 時間 | 價值 | 價值2 | |
---|---|---|---|---|
0 | 問 | 09:15 | 1 | 09:16 |
1 | 問 | 09:18 | 1 | 09:19 |
2 | 磷 | 23:20 | 1 | 23:20 |
這是一個適用於您的示例的解決方案。 在 df1 你有輸出
import pandas as pd
df=pd.DataFrame({
"Name":["Q" ,"Q" ,"Q" ,"Q" ,"P" ,"P"],
"Time":["09:15", "09:16", "09:18", "09:19", "22:30", "23:20"],
"Value":[1 ,0 ,1 ,0 ,1 ,0],
"Value2":[None,None,None,None,None,None]})
df1=df.loc[df["Value"]!=0]
df2=df.loc[df["Value"]==0]
df2.index=df1.index
df1=df1.drop(columns=["Value2"])
df2=df2.drop(columns=["Name","Value","Value2"])
df2=df2.rename(columns={"Time":"Value2"})
df1=df1.join(df2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.