我必须使用如下所示的数据框:
df1: condition
A
A
A
B
B
B
B
df2: condition value
A 1
B 2
Run Code Online (Sandbox Code Playgroud)
我想为每个条件分配其值,向 df1 添加一列以获得:
df1: condition value
A 1
A 1
A 1
B 2
B 2
B 2
B 2
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?先感谢您!
我使用 get 函数在 python 上运行查询以从 API 获取每小时价格数据:
result = (requests.get(url_prices, headers=headers, params={'SpotKey':'1','Fields':'hours','FromDate':'2016-05-05','ToDate':'2016-12-05','Currency':'eur','SortType':'ascending'}).json())
Run Code Online (Sandbox Code Playgroud)
其中“SpotKey”标识我想要从 API 检索的项目,在此示例中“1”是每小时价格时间序列(其他参数不言自明)。
查询的结果是:
{'SpotKey': '1',
'SpotName': 'APX',
'Denomination': 'eur/mwh',
'Elements': [{'Date': '2016-05-05T00:00:00.0000000',
'TimeSpans': [{'TimeSpan': '00:00-01:00', 'Value': 23.69},
{'TimeSpan': '01:00-02:00', 'Value': 21.86},
{'TimeSpan': '02:00-03:00', 'Value': 21.26},
{'TimeSpan': '03:00-04:00', 'Value': 20.26},
{'TimeSpan': '04:00-05:00', 'Value': 19.79},
{'TimeSpan': '05:00-06:00', 'Value': 19.79},
...
{'TimeSpan': '19:00-20:00', 'Value': 57.52},
{'TimeSpan': '20:00-21:00', 'Value': 49.4},
{'TimeSpan': '21:00-22:00', 'Value': 42.23},
{'TimeSpan': '22:00-23:00', 'Value': 34.99},
{'TimeSpan': '23:00-24:00', 'Value': 33.51}]}]}
Run Code Online (Sandbox Code Playgroud)
其中“Elements”是包含时间序列的相关列表,结构为“Date”键和“TimeSpans”键的嵌套字典。
每个“TimeSpan”键都包含一天中每个小时的其他嵌套字典,其中“TimeSpan”键代表该小时,“Value”键代表价格。
我想将其转换为数据框,例如:
Datetime eur/mwh
2016-05-05 00:00:00 23.69
2016-05-05 …Run Code Online (Sandbox Code Playgroud) 我试图在Pandas(Python2.7)中对数据帧进行分组,具体取决于每次不满足条件时重置的渐进计数.看起来像:
date condition count
01,01,2018 08:00 A 1
01,01,2018 08:01 A 2
01,01,2018 08:03 A 3
01,01,2018 08:04 B 1
01,01,2018 08:07 B 2
01,01,2018 08:10 B 3
01,01,2018 08:13 B 4
01,01,2018 08:14 C 1
01,01,2018 08:16 C 2
01,01,2018 08:18 C 3
01,01,2018 08:20 C 4
01,01,2018 08:21 C 5
01,01,2018 08:22 A 1
01,01,2018 08:24 A 2
01,01,2018 08:25 B 1
01,01,2018 08:27 B 2
01,01,2018 08:29 B 3
01,01,2018 08:30 C 1
Run Code Online (Sandbox Code Playgroud)
我想获得:
date condition count …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,如:
values
0 45
1 47
2 58
3 40
4 45
5 40
6 50
7 55
8 60
9 60
10 20
...
Run Code Online (Sandbox Code Playgroud)
我想获得一个仅包含 3 个连续值大于特定数字的行的数据框,假设大于 44。结果 df 将是:
values
0 45
1 47
2 58
6 50
7 55
8 60
9 60
...
Run Code Online (Sandbox Code Playgroud)
请注意 index=3 中的 value=45 已被排除,因为没有 3 个连续的值大于 44。谢谢!
我有一个带有某些条件的数据框和一个计数器,该计数器在满足条件A时进行计数。
date condition count
01,01,2018 08:00 A 1
01,01,2018 08:01 A 2
01,01,2018 08:03 A 3
01,01,2018 08:04 B 0
01,01,2018 08:07 B 0
01,01,2018 08:10 B 0
01,01,2018 08:13 B 0
01,01,2018 08:22 A 1
01,01,2018 08:24 A 2
01,01,2018 08:25 B 0
01,01,2018 08:27 B 0
01,01,2018 08:29 B 0
01,01,2018 08:30 A 1
Run Code Online (Sandbox Code Playgroud)
我希望每次条件变化时都不会重置计数。
date condition count
01,01,2018 08:00 A 1
01,01,2018 08:01 A 2
01,01,2018 08:03 A 3
01,01,2018 08:04 B 3
01,01,2018 08:07 B 3 …Run Code Online (Sandbox Code Playgroud) 我有一个数据帧如下:
dtm f C A B
0 2018-03-01 00:00:00 +0000 50.135 9.000000 0 0
1 2018-03-01 00:00:01 +0000 50.130 9.000000 0 0
2 2018-03-01 00:00:02 +0000 50.120 9.000000 0 0
3 2018-03-01 00:00:03 +0000 50.112 9.000000 0 0
4 2018-03-01 00:00:04 +0000 50.102 9.000000 0 0
5 2018-03-01 00:00:05 +0000 50.097 9.000000 0 0
6 2018-03-01 00:00:06 +0000 11.095 9.000000 0 0
7 2018-03-01 00:00:07 +0000 11.095 9.000000 0 0
8 2018-03-01 00:00:08 +0000 11.092 9.000000 0 0
9 2018-03-01 …Run Code Online (Sandbox Code Playgroud)