[英]How to simplify the for loop of dataframe?
我想简化这些类似的代码,这似乎很容易,但我做不到。
df_ls1_speci = []
for df in df_ls1:
value = pd.Series(df.values.ravel('F'))
value = list(value[len(df["column"]):])
df_ls1_speci.append(value)
df_ls_speci = []
for df in df_ls:
value = pd.Series(df.values.ravel('F'))
value = list(value[len(df["column"]):])
df_ls_speci.append(value)
df_ls 和 df_ls1 都是 dataframe 的类型。 如果我写
for df in df_ls, df_ls1:
它不能工作,因为'list' object 没有属性'values'。 那么其他方法可以解决吗?
这取决于您要解决的问题,如果您想在 dataframe 列表中循环两次以创建两个列表,您可以考虑将其写入 function。
def dataframe_list_to_list(df_ls)
out_df_ls_speci = []
for df in df_ls:
value = pd.Series(df.values.ravel('F'))
value = list(value[len(df["column"]):])
out_df_ls_speci.append(value)
return out_df_ls_speci
df_ls1_speci = dataframe_list_to_list(df_ls1)
df_ls_speci = dataframe_list_to_list(df_ls)
如果您只想获得一个 output,那么您可以连接两个列表并循环一次——您仍然可以使用上面显示的 function。
df_ls_all = dataframe_list_to_list(df_ls1 + df_ls)
您可以像这样将列表理解(这是有效的)与 function 一起使用:
def get_dataframes_values_list(dataframes):
return [list(pd.Series(df.values.ravel('F'))[len(df["column"]):]) for df in dataframes]
df_ls_speci = get_dataframes_values_list(df_ls)
df_ls1_speci = get_dataframes_values_list(df_ls1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.