如何创建一个函数将数据追加到数据帧?

2024-09-28 03:14:11 发布

您现在位置:Python中文网/ 问答频道 /正文

import pandas as pd
columns_list=['sport','home','away','selection','odds','tipster','stake',
              'is_won','profit','bookie']

df = pd.DataFrame(columns=columns_list)

def bet(sport,home,away,selection,odds,tipster,stake,profit,bookie):
    if profit > 0:
        is_won = True
    elif profit < 0:
        is_won = False
    temp_df = pd.DataFrame([[sport,home,away,selection,odds,tipster,stake,
                             is_won,profit,bookie]], columns=columns_list)
    df.append(temp_df, ignore_index=True)
    #print(smemels has been inserted)
    #add market

bet(sport="football",home="sporting",away="porto",selection="sporting",
    odds=2.7,tipster="me",stake=500,profit=500,bookie="marathon")

我试图创建一个空的DataFrame,然后通过创建一个函数来追加新行,所以我只需要放入值,它就会自动插入。当我运行代码bet(...)时,它并没有真正附加数据。在


Tags: columnsdfhomeislistpdprofitwon
2条回答
def bet(**kwargs):
    '''place your code here

bet(sport="football",home="sporting",away="porto",selection="sporting",
odds=2.7,tipster="me",stake=500,profit=500,bookie="marathon")

http://book.pythontips.com/en/latest/args_and_kwargs.html

kwargs允许你添加关键字,就像你想做的那样。在

只需在函数头下方添加“global df”,并在append函数中添加参数inplace=True:

def bet(sport,home,away,selection,odds,tipster,stake,profit,bookie):
    global df
    if profit > 0:
        is_won = True
    elif profit < 0:
        is_won = False
    temp_df = pd.DataFrame([[sport,home,away,selection,odds,tipster,stake,
                             is_won,profit,bookie]], columns=columns_list)
    df.append(temp_df, ignore_index=True, inplace = True)

第一个命令告诉函数获取全局(函数外部)df变量,而不是在本地创建一个新的df变量。第二个方法更改数据帧,而不是返回新对象。在

相关问题 更多 >

    热门问题