我正在学习Python和pandas,而且我经常会遇到很长的方法调用链。我知道如何以编译的方式打破运算符的列表和链,但是我找不到一种方法来打破方法链,而这种方式并不像作弊那样。
在谷歌中有很多打破运营商链和列表的例子,但我找不到方法链的任何东西。
Python 3中将多条方法调用链分成多行的最佳方法是什么?
说出像这样的一行:
t_values = df_grouped_by_day.sort_values('day_of_week').groupby(['day_of_week', 'day_of_week_name'])['Show_up'].apply(lambda sample: ttest_ind(population, sample)).reset_index()
答案 0 :(得分:4)
到目前为止,我提出的最佳方法是:
t_values = (df_grouped_by_day
.sort_values('day_of_week')
.groupby(['day_of_week', 'day_of_week_name'])['Show_up']
.apply(lambda sample: ttest_ind(population, sample))
.reset_index())
答案 1 :(得分:3)
或者,反斜杠\
可以放在最后一行的末尾。
t_values = df_grouped_by_day \
.sort_values('day_of_week') \
.groupby(['day_of_week', 'day_of_week_name'])['Show_up'] \
.apply(lambda sample: ttest_ind(population, sample)) \
.reset_index()
答案 2 :(得分:1)
为了完整性,还有一种方法是仅在已存在的括号或括号对中断行。它避免了括号包装和换行符转换,但我觉得很多不太可读:
t_values = df_grouped_by_day.sort_values('day_of_week'
).groupby(['day_of_week', 'day_of_week_name']
)['Show_up'
].apply(lambda sample: ttest_ind(population, sample)
).reset_index())