[英]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.