【问题标题】:Just keep the first value of every minute in pandas dataframe只需在熊猫数据框中保留每分钟的第一个值
【发布时间】:2021-10-08 17:32:32
【问题描述】:

我想减少我的数据。我的初始数据框如下所示:

index time [hh:mm:ss] value1 value2
0 0 days 00:00:00.000000 3 4
1 0 days 00:00:04.000000 5 2
2 0 days 00:02:02.002300 7 9
3 0 days 00:02:03.000000 9 7
4 0 days 03:02:03.000000 4 3

现在我想减少我的数据,以便只保留每个新分钟的单元格(分别也是新的小时和天)。反之亦然:只应保留新一分钟的第一行。应该删除这一分钟的所有剩余行。 所以结果表如下所示:

index time value1 value2
0 0 days 00:00:00.000000 3 4
2 0 days 00:02:02.002300 7 9
4 0 days 03:02:03.000000 4 3

任何想法如何解决这个问题?

【问题讨论】:

  • 到目前为止你尝试了什么?你现在卡在哪里了?请在您的代码中添加minimal reproducible example,以便更轻松地为您提供帮助。

标签: python pandas dataframe numpy


【解决方案1】:

使用了 timedeltas,因此可以创建 TimedeltaIndex 并使用 DataFrame.resample by 1MinuteResampler.first,仅添加所有分钟,因此仅删除 NaN 行:

df.index = pd.to_timedelta(df['time [hh:mm:ss]'])

df = df.resample('1Min').first().dropna(how='all').reset_index(drop=True)
print (df)
          time [hh:mm:ss]  value1  value2
0  0 days 00:00:00.000000     3.0     4.0
1  0 days 00:02:02.002300     7.0     9.0
2  0 days 03:02:03.000000     4.0     3.0

【讨论】:

  • 每次问我感谢您的回答。你能推荐一本关于熊猫的书/文学作为起点吗?还是更像体验?
  • @AdlerMüller - 对我来说,编码工作很多,然后this,尤其是现代熊猫。
【解决方案2】:

您可以使用 apply 和 multiple splits 提取 D:HH:MM,然后删除重复项,选择第一个值。

dms = df['time [hh:mm:ss]'].apply(lambda x: ':'.join( [x.split(' days ')[0], *x.split('days ')[1].split(':')[:2]]) )
df.iloc[dms.drop_duplicates().index]

【讨论】:

    【解决方案3】:

    d = '''index,time,value1,value2 0,0 天 00:00:00.000000,3,4 1,0 天 00:00:04.000000,5,2 2,0 天 00:02:02.002300,7,9 3,0 天 00:02:03.000000,9,7 4,0 天 03:02:03.000000,4,3'''

    df = pd.read_csv(StringIO(d),parse_dates=True)

    df

    df['time1'] = pd.to_datetime(df['time'].str.slice(7)) df.set_index('time1',inplace=True)

    df

    df.groupby([df.index.hour,df.index.minute]).head(1).sort_index().reset_index(drop=True)

    【讨论】:

      猜你喜欢
      • 2019-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      相关资源
      最近更新 更多