Python &引用\&引用;换行符使数据帧列按字母顺序重新排序

Python &引用\&引用;换行符使数据帧列按字母顺序重新排序,python,pandas,Python,Pandas,我的代码太大了,所以我开始使用“\”来提高可读性。但是我注意到,通过这样做,我的列按字母顺序重新排序 有人知道如何阻止这种事情发生吗 代码如下: def unsettled_event(team_name,market): """Returns all bets tied to this specific event.""" combos_list = df[(df["home"] == team_name) \ & (df["p

我的代码太大了,所以我开始使用“\”来提高可读性。但是我注意到,通过这样做,我的列按字母顺序重新排序

有人知道如何阻止这种事情发生吗

代码如下:

def unsettled_event(team_name,market):
    """Returns all bets tied to this specific event."""
    combos_list = df[(df["home"] == team_name) \
                     & (df["profit"].isnull()) \
                     & (df["market"] == market) \
                     & (df['settled_date']).isnull()].combo_id.dropna().unique()
    df_combos = df[df["combo_id"].isin(combos_list)].sort_values("combo_id") \
                [["combo_id", "home", "market", "odds", "selection", "bookmaker", "broker", "stake_adj", "is_won"]] 
    df_singles = df[(df["home"] == team_name) \
                    & (df["leg_size"] == 1) \
                    & (df["profit"].isnull()) \
                    & (df["market"] == market) \
                    & (df['settled_date']).isnull()] \
                [["combo_id", "home", "market", "selection", "odds", "bookmaker", "broker", "stake_adj", "is_won"]]
    return pd.concat([df_singles, df_combos], ignore_index=True)
最后,df.columns返回:

['bookmaker', 'broker', 'combo_id', 'home', 'is_won', 'market', 'odds', 'selection', 'stake_adj']
它应该返回:

["combo_id", "home", "market", "selection", "odds", "bookmaker", "broker", "stake_adj", "is_won"]

如果要按特定顺序显示相关列,请在输出中指定它们:

df[["combo_id", "home", "market", "selection", "odds", "bookmaker", 
    "broker", "stake_adj", "is_won"]].head()
在引擎盖下,顺序无关紧要。如果它在输出中很重要,你最好明确地说出来

(请注意,有一半以上的时间,输出结果也不重要。)


你也不需要反斜杠

例如,这很好,更符合Python风格:

def unsettled_event(team_name,market):
    """Returns all bets tied to this specific event."""
    columns = ["combo_id", "home", "market", "selection", "odds",
               "bookmaker", "broker", "stake_adj", "is_won"]
    combos_list = df[(df["home"] == team_name)
                     & (df["profit"].isnull())
                     & (df["market"] == market)
                     & (df['settled_date']).isnull()].combo_id.dropna().unique()
    df_combos = df[df["combo_id"].isin(combos_list)].sort_values("combo_id")[columns]     
    df_singles = df[(df["home"] == team_name)
                    & (df["leg_size"] == 1)
                    & (df["profit"].isnull())
                    & (df["market"] == market)
                    & (df['settled_date']).isnull()][columns]
    return pd.concat([df_singles, df_combos], ignore_index=True)

您可能还可以做一些更改,删除一些多余的部分,但这就是要点。
[…]
将把东西放在一起,尽管它们之间有换行符。

添加了代码。按字母顺序重新排列列的确切含义是什么?你的意思是列的显示顺序是按其各自名称的字母顺序排列的吗?是的,请检查编辑。这对可读性很重要。谢谢你的建议。将在末尾指定列。在开头定义列肯定会有所帮助。谢谢