gpt4 book ai didi

python - 我的非数字列在重新采样时被删除

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:43 26 4
gpt4 key购买 nike

我的 2 个非数字列 lable 和 FID 在重新采样时被删除,如何保留这些列?

T               CP      LC      DP     VB   WP      LABEL   FID
10/26/201711:00 251.05 40.9 3157.9 0 256.27 F30d MN-0001-2017-1
10/26/201711:01 250.88 38.8 3159.3 0 257.32 F30d MN-0001-2017-1
10/26/201711:02 250.85 38.2 3157.2 0 256.81 F30d MN-0001-2017-1
10/26/201711:03 250.72 31.7 3159.7 0 255.74 F30d MN-0001-2017-1

使用 groupby 似乎只保留 1 列:

newseries1 = newseries.groupby('LABEL').resample('10min', level=1).mean()
newseries1.head(10)

我想在我的数据框中保留我的 2 列 LABEL 和 FID

最佳答案

resample 就像 groupby 一样,因此您可以指定一个字典以不同方式聚合数字和非数字列。

numeric = df.select_dtypes('number').columns
non_num = df.columns.difference(numeric)
d = {**{x: 'mean' for x in numeric}, **{x: 'first' for x in non_num}}

df.resample('10min').agg(d)

示例数据

import pandas as pd
import numpy as np

df = pd.DataFrame(index=pd.date_range('2010-01-01', freq='3min', periods=20),
data={'col1': np.random.randint(1, 100, 20),
'col2': np.random.choice(list('abcde'), 20)})

numeric = df.select_dtypes('number').columns
non_num = df.columns.difference(numeric)
d = {**{x: 'mean' for x in numeric}, **{x: 'first' for x in non_num}}

df.resample('10min').agg(d)

# col1 col2
#2010-01-01 00:00:00 45.750000 e
#2010-01-01 00:10:00 61.000000 d
#2010-01-01 00:20:00 81.000000 b
#2010-01-01 00:30:00 28.750000 e
#2010-01-01 00:40:00 37.333333 a
#2010-01-01 00:50:00 20.333333 a

关于python - 我的非数字列在重新采样时被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57577805/

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