gpt4 book ai didi

python - 使用 DataFrame 导出系列的转换

转载 作者:行者123 更新时间:2023-11-28 22:54:57 25 4
gpt4 key购买 nike

我将以下形式的数据存储在 DataFrame 中。我想获取按类型分组的每个指标的每日总和,例如 2012 年 10 月 3 日 linkedin_profiles 的总和。

sample_date                            metric_name  sample

2012-10-03 21:30:18.742307+00:00 linkedin_profile 257
2012-10-03 21:30:25.132189+00:00 twitter_profile 972
2012-10-03 21:30:26.063389+00:00 youtube_video 10393
2012-10-03 21:30:26.178347+00:00 youtube_video 2866
2012-10-03 21:30:26.215093+00:00 youtube_video 5877

我还可能希望能够为 DataFrame 中的每个 (metric_name) 将 metric_name 特定数据提取到一个 Series 对象中。也就是说,它将是一个指标(如 linkedin_profiles)的每日总和。

最佳答案

假设您有这个 DataFrame:

import io
import pandas as pd

text = '''\
sample_date metric_name sample
2012-10-03 21:30:18.742307+00:00 linkedin_profile 257
2012-10-03 21:30:25.132189+00:00 twitter_profile 972
2012-10-03 21:30:26.063389+00:00 youtube_video 10393
2012-10-03 21:30:26.178347+00:00 youtube_video 2866
2012-10-03 21:30:26.215093+00:00 youtube_video 5877
'''
df = pd.read_table(io.BytesIO(text), sep='\s{2,}', parse_dates=[0,1])

您可以按日期和 metric_name 分组,然后像这样对 sample 值求和:

dates = df['sample_date'].apply(lambda x: x.date())
total = df.groupby([dates, 'metric_name']).sum()
print(total)
# sample
# sample_date metric_name
# 2012-10-03 linkedin_profile 257
# twitter_profile 972
# youtube_video 19136

或者,如果您希望先只选择那些 metric_name 等于 'youtube_video' 的行,您可以使用

youtube_df = (df[df['metric_name'] == 'youtube_video'])

然后像这样按日期分组:

dates = youtube_df['sample_date'].apply(lambda x: x.date())
youtube_total = youtube_df.groupby([dates]).sum()
print(youtube_total)
# sample_date
# 2012-10-03 19136

关于python - 使用 DataFrame 导出系列的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17458370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com