我将如何在熊猫中执行更宽的枢轴?(Python)
我有一个数据集,df:我将如何在熊猫中执行更宽的枢轴?(Python),python,pandas,numpy,pivot,Python,Pandas,Numpy,Pivot,我有一个数据集,df: Action Date Begin 3/16/2020 12:35:47 PM End 3/16/2020 12:35:49 PM Begin 3/16/2020 01:35:47 PM End 3/16/2020 0
Action Date
Begin 3/16/2020 12:35:47 PM
End 3/16/2020 12:35:49 PM
Begin 3/16/2020 01:35:47 PM
End 3/16/2020 01:35:49 PM
预期结果:
Begin End
3/16/2020 12:35:47 PM 3/16/2020 12:35:49 PM
3/16/2020 01:35:47 PM 3/16/2020 01:35:49 PM
结构:
' Action Date\n0 Begin 3/16/2020 12:35\n1
End 3/16/2020 12:35\n2 Begin 3/16/2020 13:35\n3
End 3/16/2020 13:35'
我所尝试的:
我认为这是一个置换类型的问题,但不是很确定
df2=df.pivot(columns='Action', values='Date')
这给出了奇怪的NAN值
df1 = df.set_index(['Action','Date']).unstack().reset_index()
任何建议都很有帮助。您可以使用轴,在结束或开始列上执行:
(df.pivot(columns='Action',values='Date')
.assign(End = lambda x:x.End.bfill())
.dropna()
.rename_axis(None,axis='columns')
)
Begin End
0 3/16/2020 12:35:47 PM 3/16/2020 12:35:49 PM
2 3/16/2020 01:35:47 PM 3/16/2020 01:35:49 PM
您为熊猫问题共享了R数据结构(
dput
)?抱歉,我不确定如何为熊猫共享dput。让我看看这个upI已经包括了str(df),我会查这个,但是lambda到底是做什么的?(微积分基金会?):它做什么?一个问题。对于输出,我没有得到am/PM,格式有点不同。数据是否必须首先转换为Datetime?此外,代码适用于我的一个数据集,但在第二个数据集上它不断给出:AttributeError:“DataFrame”对象没有属性“Ended”,我对此进行了研究,但我确实将此名称作为我的dataframeOk这有效!但我不得不对另一个数据集进行分析。我正在研究为什么会这样。为什么我不能将“bfill”同时应用于这两个呢?现在可以了。你有没有办法看看我最近的问题?我正在尝试合并两个数据集,并使用了以下方法:pd.merge_asof(df1,df2,on=“Connect”,by='Start',tolerance=pd.Timedelta('20s'),direction='backward'))