用函数格式化多个数据帧,返回正确的输出,但又调用旧的变量。

问题描述 投票:0回答:1

我一直遇到这个问题,但一直没有找到解决办法。我有10个独立的数据帧,并试图使用一个函数来一次格式化所有的数据帧。当在Jupyter Notebook中运行该函数时,它通过显示正确格式化的最后一个数据帧(df10, odds_sb)来显示正确的格式化。然而,当我再次调用应该是新格式化的数据帧之一时,返回的是旧格式。

#Create function to format odds dataframes
def format_odds(df1, df2, df3, df4, df5, df6, df7, df8, df9, df10):
    for idx, df in enumerate((df1, df2, df3, df4, df5, df6, df7, df8, df9, df10)):
        df = df.T
        df = df.add_suffix(idx)
    return df

# Run format odds function to transpose and add number to each column
# This shows that they were correctly formatted
format_odds(odds_opening, odds_bovada, odds_betonline, odds_intertops, odds_sbtng, 
            odds_betnow, odds_gtbets, odds_skybook, odds_5dimes, odds_sb)

#Back to old formatting for some reason
odds_opening

任何帮助都是非常感激的

python pandas function
1个回答
0
投票

你需要创建一个临时表,并将每个df添加到表中......你还必须在一个列表上调用枚举......请注意,当你添加后缀时,列名将是不同的,并且append将不会添加行,而是列。但无论如何,下面的代码将演示如何用相同的格式(相同的列名类型)来追加数据框架的想法。

def format_odds(df1, df2, df3):
    res = pd.DataFrame()
    for idx, df in enumerate([df1, df2]):
        df = df.T
        df = df.add_suffix(idx)
        res = res.append(df)
    return res

© www.soinside.com 2019 - 2024. All rights reserved.