【问题标题】:Stacking multiple dataframes together for different timestamp format into one timestamp将不同时间戳格式的多个数据帧堆叠在一起,形成一个时间戳
【发布时间】:2021-07-20 04:29:52
【问题描述】:

我有多个数据框,每个数据框的数据从 1 到 1440 分钟(一天)不等。每个数据框都是相似的,相同的列和相同的长度。时间列值采用hhmm 格式。 假设 df_A 有第一天的数据,即 2021-05-06 看起来像这样。

>df_A
timestamp    col1   col2.....  col80
0
1
2
.
.
.
2359

第二天的数据在df_B中也是一样的。日期是2021-05-07

>df_B
timestamp    col1   col2.....  col80
0
1
2
.
.
.
2359

我怎样才能将它们一个接一个地堆叠在一起并创建一个数据框,同时使用具有YYYYMMDD HH:mm 格式的值的列来标识每一行。有点像这样:

>df
timestamp      col1    col2.....  col80
20210506 0000
20210506 0001
.
.
20210506 2359
20210507 0000
.
.
20210507 2359

在处理多个数据帧时如何实现这一点?

【问题讨论】:

  • 如果列名相同,那么您可以附加两个df...即df1.append(df2)
  • @AnuragDabas 困惑是如何解决日期时间问题。附加很容易。但是更改它们的日期时间格式并将它们统一为我想要的日期时间格式是我卡住的地方。

标签: python pandas dataframe datetime strptime


【解决方案1】:
df_A = pd.DataFrame(range(0, 10), columns=['timestamp'])
df_B = pd.DataFrame(range(0, 10), columns=['timestamp'])


df_A['date'] = pd.to_datetime('2021-05-06 ' + 
                              df_A['timestamp'].astype(str).str.zfill(4), format='%Y-%m-%d %H%M')

df_B['date'] = pd.to_datetime('2021-05-07 ' + 
                              df_A['timestamp'].astype(str).str.zfill(4), format='%Y-%m-%d %H%M')

df_final = pd.concat([df_A, df_B])

df_final
    timestamp   date
0   0   2021-05-06 00:00:00
1   1   2021-05-06 00:01:00
2   2   2021-05-06 00:02:00
3   3   2021-05-06 00:03:00
4   4   2021-05-06 00:04:00
5   5   2021-05-06 00:05:00
6   6   2021-05-06 00:06:00
7   7   2021-05-06 00:07:00
8   8   2021-05-06 00:08:00
9   9   2021-05-06 00:09:00
0   0   2021-05-07 00:00:00
1   1   2021-05-07 00:01:00
2   2   2021-05-07 00:02:00
3   3   2021-05-07 00:03:00
4   4   2021-05-07 00:04:00
5   5   2021-05-07 00:05:00
6   6   2021-05-07 00:06:00
7   7   2021-05-07 00:07:00
8   8   2021-05-07 00:08:00
9   9   2021-05-07 00:09:00

【讨论】:

  • 我正面临这个错误``` ValueError: time data '2021-03-210001' does not match format '%Y-%m-%d %H%M' (match)`` `。不知道为什么
  • 您是否正确复制%Y-%m-%d%Y-%m-%d 之间有一个空格,例如'2021-03-21 0001' 格式%Y-%m-%d %H%M?为什么你会面临这个错误?你想做什么?我已经放了空格'2021-05-06 '+...看06之后的空格
  • 我很抱歉,它工作得很好。我在空间中犯了一些错误。非常感谢
猜你喜欢
  • 2020-03-21
  • 1970-01-01
  • 2019-10-31
  • 1970-01-01
  • 2021-01-09
  • 2019-09-08
  • 1970-01-01
  • 2021-10-25
  • 1970-01-01
相关资源
最近更新 更多