pandas 从字符串中捕获日期并进行统计

o7jaxewo  于 2023-06-04  发布在  其他
关注(0)|答案(1)|浏览(125)

我有一个XLS文件,其中有时间条目与各种日期和时间的这些日期。
示例:

TIME_STAMP
21/04/2023 09:46:55.000
21/04/2023 09:46:55.858
21/04/2023 09:46:56.000
21/04/2023 09:46:57.000
21/04/2023 09:46:58.000
21/04/2023 09:46:59.000
21/04/2023 09:47:00.000
21/04/2023 09:47:01.000
22/04/2023 09:47:02.000
22/04/2023 09:47:03.000
22/04/2023 09:47:04.000
22/04/2023 09:47:05.000
22/04/2023 09:47:06.000
23/04/2023 09:47:06.000
23/04/2023 09:47:06.000
23/04/2023 09:47:06.000
23/04/2023 09:47:06.000
23/04/2023 09:47:06.000
23/04/2023 09:47:06.000
23/04/2023 09:47:06.000

我正试图输出的条目总数为个别日期在这个文件中的一些基本统计数据,如发生率的百分比相比,总发生率为每个日期。因此,我的输出应该显示我的三个特定日期,即4月21日,22日和23日的条目计数。以及对于每个日期,它们在总数据集中发生了多少次。
任何帮助将不胜感激。
谢谢
这是我尝试的代码:

df=pd.read_excel('TIME_Stamp.xlsx')

print('The total no of rows with DATE values is:')
print(df['TIME_STAMP'].count())
print('The stats for TIME_STAMP column is:')
print(df['TIME_STAMP'].value_counts())
mf98qq94

mf98qq941#

IIUC用途:

df['TIME_STAMP'] = pd.to_datetime(df['TIME_STAMP'], dayfirst=True)

out1 = df['TIME_STAMP'].dt.date.value_counts()

out2 = df['TIME_STAMP'].dt.date.value_counts(normalize=True)
print (out1)
2023-04-21    8
2023-04-23    7
2023-04-22    5
Name: TIME_STAMP, dtype: int64

print (out2)
2023-04-21    0.40
2023-04-23    0.35
2023-04-22    0.25
Name: TIME_STAMP, dtype: float64

如果需要筛选特定日期:

filt = ['2023-04-21','2023-04-22','2023-04-23']

df['TIME_STAMP'] = pd.to_datetime(df['TIME_STAMP'], dayfirst=True)

dates = df['TIME_STAMP'].dt.date

out1 = dates[dates.isin(pd.to_datetime(filt).date)].value_counts()

out2 = dates[dates.isin(pd.to_datetime(filt).date)].value_counts(normalize=True)

相关问题