- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 csv 文件中有比特币价格。我的文件每 5 分钟更新一次,并将时间戳设置为 epoc。我已将此数据加载到 pandas DataFrame 中。
我想做的是将这些数据从 5 分钟转换为 15、30、60 等分钟。我需要做的是从起始行添加 x 秒并将文件的其余部分读取到 DataFrame。
需要明确的是,我需要获取时间戳的准确数据。例如:
1006.54999992,1483304400,1006.54999997,1004.00000002,1005.84692623,2686.70823136
1002.69522396,1483305300,1003.50000156,1002.03739724,1003.50000156,1066.56568909
1004.9,1483306200,1004.9,1003.50000155,1003.50000155,4978.96836354
这里是示例数据:
Close,Timestamp,High,Low,Open,Volume
1006.54999992,1483304400,1006.54999997,1004.00000002,1005.84692623,2686.70823136
1005.40527258,1483304700,1006.54999994,1004.00000001,1006.50831019,11553.13463685
1003.50000156,1483305000,1006.54999994,1002.42767301,1005.40527258,24319.95180383
1002.69522396,1483305300,1003.50000156,1002.03739724,1003.50000156,1066.56568909
1001.97782306,1483305600,1002.69522396,1001.97782306,1002.69522396,2074.17726448
1003.50000155,1483305900,1003.50000155,1001.84692611,1001.84692612,3281.67078015
1004.9,1483306200,1004.9,1003.50000155,1003.50000155,4978.96836354
1006.49999618,1483306500,1006.5499955,1003.50000164,1003.50000347,6070.86273057
1006.99999998,1483306800,1007.0,1004.30668523,1004.30668523,723.41389783
1007.98333891,1483307100,1008.151,1006.54999328,1006.99999999,1357.21576969
1008.23099997,1483307400,1008.54999326,1007.0,1007.0,459.99976456
1005.99999956,1483307700,1008.231,1004.33924087,1007.391,6139.66580632
1007.18578657,1483308000,1007.4,1004.79999999,1005.99999939,11867.90775651
1003.9999994,1483308300,1007.18578594,1001.84692611,1007.18578594,27285.53584028
1001.00000001,1483308600,1003.99999997,1000.2,1003.9999991,11068.8150516
1005.99669899,1483308900,1007.40360648,1001.84692611,1001.84692611,13223.84822808
1004.99999988,1483309200,1005.99669893,1003.00000001,1003.14143239,3069.76051701
1004.00000001,1483309500,1005.99669899,1004.00000001,1004.00000001,616.35942426
1004.99999989,1483309800,1005.99669893,1002.55436881,1003.80404142,1519.48804831
1005.0,1483310100,1006.14142953,1003.05841976,1003.05841976,8158.1735214
1004.99999997,1483310400,1005.0,1004.9999999,1005.0,3497.33824251
1004.99999999,1483310700,1005.0,1002.55399997,1004.99999991,7791.517061
1004.99999969,1483311000,1006.99669898,1004.99999968,1004.99999999,8604.25057064
1005.99999949,1483311300,1007.39313634,1004.99999999,1007.39313634,162.26831131
1004.44444427,1483311600,1005.99999991,1001.84362417,1004.99999999,3803.79028496
1004.99999992,1483311900,1005.99999985,1003.85858574,1003.85858574,69939.19414843
1001.00000001,1483312200,1004.99999993,1001.0,1004.99999992,96461.36606918
最佳答案
您需要resample
与 first
,但对于完全相同的值,需要通过 read_csv
中的 dtype=str
将所有值转换为 string
:
df = pd.read_csv(file, dtype=str)
df['Timestamp'] = pd.to_datetime(df['Timestamp'], unit='s')
df = (df.set_index('Timestamp')
.resample('15T').first()
.reset_index()
.reindex(columns=df.columns))
df['Timestamp'] = df['Timestamp'].astype(np.int64) // 10**9
print (df)
Close Timestamp High Low Open \
0 1006.54999992 1483304400 1006.54999997 1004.00000002 1005.84692623
1 1002.69522396 1483305300 1003.50000156 1002.03739724 1003.50000156
2 1004.9 1483306200 1004.9 1003.50000155 1003.50000155
3 1007.98333891 1483307100 1008.151 1006.54999328 1006.99999999
4 1007.18578657 1483308000 1007.4 1004.79999999 1005.99999939
5 1005.99669899 1483308900 1007.40360648 1001.84692611 1001.84692611
6 1004.99999989 1483309800 1005.99669893 1002.55436881 1003.80404142
7 1004.99999999 1483310700 1005.0 1002.55399997 1004.99999991
8 1004.44444427 1483311600 1005.99999991 1001.84362417 1004.99999999
Volume
0 2686.70823136
1 1066.56568909
2 4978.96836354
3 1357.21576969
4 11867.90775651
5 13223.84822808
6 1519.48804831
7 7791.517061
8 3803.79028496
关于python - 如何将 5 分钟的 DataFrame 过滤为 15 分钟的 DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49255609/
假设我有 3 个 DataFrame。其中一个 DataFrame 的列名不在其他两个中。 using DataFrames df1 = DataFrame([['a', 'b', 'c'], [1,
假设我有 3 个 DataFrame。其中一个 DataFrame 的列名不在其他两个中。 using DataFrames df1 = DataFrame([['a', 'b', 'c'], [1,
我有一个 largeDataFrame(多列和数十亿行)和一个 smallDataFrame(单列和 10,000 行)。 只要 largeDataFrame 中的 some_identifier 列
我有一个函数,可以在其中规范化 DataFrame 的前 N 列。我想返回规范化的 DataFrame,但不要管原来的。然而,该函数似乎也会对传递的 DataFrame 进行变异! using D
我想在 Scala 中使用指定架构在 DataFrame 上创建。我尝试过使用 JSON 读取(我的意思是读取空文件),但我认为这不是最佳实践。 最佳答案 假设您想要一个具有以下架构的数据框: roo
我正在尝试从数据框中删除一些列,并且不希望返回修改后的数据框并将其重新分配给旧数据框。相反,我希望该函数只修改数据框。这是我尝试过的,但它似乎并没有做我所除外的事情。我的印象是参数是作为引用传递的,而
我有一个包含大约 60000 个数据的庞大数据集。我会首先使用一些标准对整个数据集进行分组,接下来我要做的是将整个数据集分成标准内的许多小数据集,并自动对每个小数据集运行一个函数以获取参数对于每个小数
我遇到了以下问题,并有一个想法来解决它,但没有成功:我有一个月内每个交易日的 DAX 看涨期权和看跌期权数据。经过转换和一些计算后,我有以下 DataFrame: DaxOpt 。现在的目标是消除没有
我正在尝试做一些我认为应该是单行的事情,但我正在努力把它做好。 我有一个大数据框,我们称之为lg,还有一个小数据框,我们称之为sm。每个数据帧都有一个 start 和一个 end 列,以及多个其他列所
我有一个像这样的系列数据帧的数据帧: state1 state2 state3 ... sym1 sym
我有一个大约有 9k 行和 57 列的数据框,这是“df”。 我需要一个新的数据框:'df_final'- 对于“df”的每一行,我必须将每一行复制“x”次,并将每一行中的日期逐一增加,也就是“x”次
假设有一个 csv 文件如下: # data.csv 0,1,2,3,4 a,3.0,3.0,3.0,3.0,3.0 b,3.0,3.0,3.0,3.0,3.0 c,3.0,3.0,3.0,3.0,3
我只想知道是否有人对以下问题有更优雅的解决方案: 我有两个 Pandas DataFrame: import pandas as pd df1 = pd.DataFrame([[1, 2, 3], [
我有一个 pyspark 数据框,我需要将其转换为 python 字典。 下面的代码是可重现的: from pyspark.sql import Row rdd = sc.parallelize([R
我有一个 DataFrame,我想在 @chain 的帮助下对其进行处理。如何存储中间结果? using DataFrames, Chain df = DataFrame(a = [1,1,2,2,2
我有一个包含 3 列的 DataFrame,名为 :x :y 和 :z,它们是 Float64 类型。 :x 和 "y 在 (0,1) 上是 iid uniform 并且 z 是 x 和 y 的总和。
这个问题在这里已经有了答案: pyspark dataframe filter or include based on list (3 个答案) 关闭 2 年前。 只是想知道是否有任何有效的方法来过
我刚找到这个包FreqTables ,它允许人们轻松地从 DataFrames 构建频率表(我正在使用 DataFrames.jl)。 以下代码行返回一个频率表: df = CSV.read("exa
是否有一种快速的方法可以为 sort 指定自定义订单?/sort!在 Julia DataFrames 上? julia> using DataFrames julia> srand(1); juli
在 Python Pandas 和 R 中,可以轻松去除重复的列 - 只需加载数据、分配列名,然后选择那些不重复的列。 使用 Julia Dataframes 处理此类数据的最佳实践是什么?此处不允许
我是一名优秀的程序员,十分优秀!