首页 > 解决方案 > 使用 pandas 数据框计算行数

问题描述

我有一个带有时间戳数据的熊猫数据框。我想计算每分钟有多少行,例如,给定这张表:

00:00:01 数据1

00:00:21 数据2

00:02:02 数据3

00:02:10 数据4

00:02:31 数据5

结果应该是 [2,0, 3]。我该怎么做?

标签: pythonpandasdataframetimestamp

解决方案


您可以先将第一列转换为 pd.Timedelta dtype,然后将其设置为索引并使用带计数的重新采样:

from io import StringIO
txt = StringIO("""00:00:01 data1

00:00:21 data2

00:02:02 data3

00:02:10 data4

00:02:31 data5""")

df = pd.read_csv(txt, names=['Time','Value'], sep='\s+')


df['Time'] = pd.to_timedelta(df['Time'])

df = df.set_index('Time')

df_out = df.resample('T').count()

df_out 

输出:

          Value
Time           
00:00:01      2
00:01:01      0
00:02:01      3

列出:

df_out['Value'].tolist()

输出:

[2, 0, 3]

推荐阅读