根据 Pandas Dataframe 中的时间戳列过滤给定的列(计数)
Posted
技术标签:
【中文标题】根据 Pandas Dataframe 中的时间戳列过滤给定的列(计数)【英文标题】:Filter a given Column(count) based on timestamp Column in Pandas Dataframe 【发布时间】:2020-12-06 13:24:20 【问题描述】:-
我有一个如下所示的 Pandas 数据框
【问题讨论】:
Please don't post images of code/data (or links to them) 【参考方案1】:首先按boolean indexing
过滤,只过滤由Failed
填充的行,然后使用crosstab
和DataFrame.plot.bar
:
df1 = df[df['Status'].eq('Failed')]
out = pd.crosstab(df1['Hour'], df1['Job'])
out.plot.bar()
【讨论】:
Pandas Version '0.25.3' : AttributeError: 'DataFrame' object has no attribute 'crosstab' 我正在检查问题所在。以上版本支持吗?【参考方案2】:import pandas as pd
df = pd.read_csv('./data.csv')
# status
status = set(df['Status'])
dfStatus = s: df[df['Status'] == s] for s in status
# hours
hours = set(df['Hour'])
dfStatusPerHour =
# calculate them explicitly
for s in status:
dfStatusPerHour[s] = h: dfStatus[s][dfStatus[s]['Hour'] == h].shape[0] for h in hours
# show results
for s in status:
print(f"s : dfStatusPerHour[s]")
【讨论】:
s:是一个字符串,如果它在 Pandas DataFrame 中会更有帮助,这样我就可以对输出进行更多数据分析。 for s in status: output = pd.DataFrame() output = output.append(dfStatusPerHour[s], ignore_index=True)以上是关于根据 Pandas Dataframe 中的时间戳列过滤给定的列(计数)的主要内容,如果未能解决你的问题,请参考以下文章
遍历 Float 时间戳的 Pandas DataFrame 并转换为日期时间
选择由 DatetimeIndex 索引的 Pandas DataFrame 的子集和时间戳列表