如何将文本分组为一行并计算python pandas中的持续时间?

我有一个这样的数据框,

ID    time       text
1   8:43:43 PM   one day
1   8:43:51 PM   this code
1   8:44:07 PM   will help
1   8:44:17 PM   someone.
2   8:45:56 AM   yes
2   8:46:09 AM   I'm feeling
2   8:46:25 AM   good.

我想按ID对时间列进行分组并计算持续时间。我知道我们可以使用join来合并文本并按每个ID分组。

最终输出将是

ID   time-duration    text
1    34        one day this code will help someone.
2    29        yes I'm feeling good.
bang2008 回答:如何将文本分组为一行并计算python pandas中的持续时间?

string_to_convert = "no me llama mucho la atenci\u00f3n" print(json.dumps(json.loads(r'"%s"' % string_to_convert),ensure_ascii=False)) output: no me llama mucho la atención named aggregations一起使用GroupBy.agg的最佳做法)

命名聚合的优点是我们可以聚合并同时重命名我们的列,请参见输出中的pandas >= 0.25.0

time_duration
df['time'] = pd.to_datetime(df['time'])

dfg = df.groupby('ID').agg(
    time_duration=('time',lambda x: x.max()-x.min()),text=('text',' '.join)
).reset_index()
,

我们可以做到

df.groupby('ID').agg({'time':np.ptp,'text':' '.join})
Out[49]:  
       time                                  text
ID                                               
1  00:00:34  one day this code will help someone.
2  00:00:29                 yes I'm feeling good.
,

分组和聚合:

(df.groupby('ID',as_index=False)
   .agg({'time': lambda x: (x.max() - x.min()).total_seconds(),'text': ' '.join})
)

输出:

   ID  time                                  text
0   1  34.0  one day this code will help someone.
1   2  29.0                 yes I'm feeling good.
本文链接:https://www.f2er.com/3156559.html

大家都在问