繁体   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