我有以下数据帧:
import pandas as pd
data = {'selectionId': [8567238,7450487,12787737,9541421,10162696,7208966,8826166,7256678],
'Price': [4.1,4.6,5.5,7.2,7.8,17.0,32.0,34.0],
'Win_Percentage': [0.245870,0.212396,0.178922,0.145448,0.111974,0.078501,0.045027,0.011553],
'Fit':[0.245870,0.212396,0.178922,0.145448,0.111974,0.078501,0.045027,0.011553],
'size':[2.708701,2.373962,2.039223,1.704484,1.369744,1.035005,0.700266,0.365527]}
df = pd.DataFrame(data, columns=['selectionId', 'Price', 'Win_Percentage','Fit','size'])
我还具有以下功能:
def test(marketId, selectionId):
global place_order_Req
place_order_Req = '{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"' + marketId + '","instructions":'\
'[{"selectionId":"' + str(
selectionId) + '","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":"1.9","price":"1.1","persistenceType":"LAPSE"}}],"customerRef":"test12121212121"}, "id": 1}'"""
print(place_order_Req)
"""
市场化变量总是有值marketId = "1.156196315"
我想将df
中的selectionId
值传递给函数
我还想将size列的值传递给函数,以更改函数的"size":"1.9"
部分
总而言之,我希望函数返回以下内容:
'{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"8567238","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":"2.708701","price":"1.1","persistenceType":"LAPSE"}}],"customerRef":"test12121212121"}, "id": 1}\n print(place_order_Req)\n '
对于数据帧的每一行,都要这样做
为此,我尝试了以下方法:
selectionId = df['selectionId']
size = df['size'].astype(str)
def test(marketId, selectionId, size):
global place_order_Req, place_order_Req_list, place_order_Req_size_list
place_order_Req_list = []
place_order_Req_size_list = []
for i in selectionId:
place_order_Req = '{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"' + marketId + '","instructions":'\
'[{"selectionId":"' + str(
i) + '","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":"1","price":"1.1","persistenceType":"LAPSE"}}],"customerRef":"test12121212121"}, "id": 1}'
"""
print(place_order_Req)
"""
place_order_Req_list.append(place_order_Req)
for j in place_order_Req_list:
place_order_Req = place_order_Req[:208] + j + place_order_Req[:209]
place_order_Req_size_list.append(place_order_Req)
print(place_order_Req_size_list)
这会很好地更改selectionId
变量,但当我尝试更改"1.9"
时,它不起作用。对于place_order_Req_size_list
列表的每个输入,它还返回自身两次
我还认为一定有比使用两个循环更聪明的方法
这是它返回的列表:
['{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"8567238","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":"1","price":"1.1","persistenceType":"LAPSE"}}],"customerRef":"test12121212121"}, "id": 1}{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":"', '{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7450487","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":"1","price":"1.1","persistenceType":"LAPSE"}}],"customerRef":"test12121212121"}, "id": 1}{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{', '{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"12787737","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":"1","price":"1.1","persistenceType":"LAPSE"}}],"customerRef":"test12121212121"}, "id": 1}{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{', '{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"9541421","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":"1","price":"1.1","persistenceType":"LAPSE"}}],"customerRef":"test12121212121"}, "id": 1}{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{', '{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"10162696","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":"1","price":"1.1","persistenceType":"LAPSE"}}],"customerRef":"test12121212121"}, "id": 1}{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{', '{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7208966","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":"1","price":"1.1","persistenceType":"LAPSE"}}],"customerRef":"test12121212121"}, "id": 1}{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{', '{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"8826166","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":"1","price":"1.1","persistenceType":"LAPSE"}}],"customerRef":"test12121212121"}, "id": 1}{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{', '{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":"1","price":"1.1","persistenceType":"LAPSE"}}],"customerRef":"test12121212121"}, "id": 1}{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/placeOrders", "params": {"marketId":"1.156196315","instructions":[{"selectionId":"7256678","handicap":"0","side":"BACK","orderType":"LIMIT","limitOrder":{"size":{']
任何帮助都很好,干杯。 桑迪
您可以使用
apply
:我现在回顾了代码,它可以与以下内容一起使用,但我仍然认为一定有一种比使用两个循环更好的方法:
您只需对数据帧的每一行应用一个函数。您可以读取每行的
'selectionId'
和'size'
字段,并将它们传递给place_order_Req
变量。另外,我不确定您是否真的需要将place_order_Req
定义/使用为全局变量相关问题 更多 >
编程相关推荐