簡體   English   中英

Python數據框將每第n行的單個值轉換為新列

[英]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.

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