我一直遇到这个问题,但一直没有找到解决办法。我有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
任何帮助都是非常感激的
你需要创建一个临时表,并将每个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