繁体   English   中英

Append dataframe 列在循环中以产生单个 dataframe

[英]Append dataframe columns in a loop to yield a single dataframe

我编写了代码从 csv 中提取数据并将它们放入 dataframe 并对其进行排序。 代码如下所示:

def highest_value_sorter(value):
    sorted_df = df_result[value].astype('float64').sort_values(ascending=False)
    sorted_df = sorted_df.head(10).to_frame().reset_index()
    return sorted_df

sorted_df = pd.DataFrame(data=[values])

for value in values:
    sorted_tmp_df = highest_value_sorter(value)
    sorted_tmp_df = sorted_tmp_df.drop(columns=['index'])

我的代码中的 sorted_tmp_df 在循环中产生以下结果:

       apples
    0             922640.524589
    1             862396.590682
    2             848624.249550

   oranges
0               2.394991e+11
1               1.875155e+11
2               6.409508e+10

   bananas
0               1.852440e+08
1               6.143871e+07
2               5.757801e+07

我的目标是将所有这些整合到一个 dataframe 中:

       apples                          oranges
    0             922640.524589        862396.590682
    1             862396.590682        5.757801e+07
    2             5.757801e+07         922640.524589

到目前为止,我已经尝试过 .join 和 .append : sorted_df = sorted_df.append(sorted_tmp_df)/sorted_df = sorted_df.join(sorted_tmp_df) 似乎都不起作用。 任何提示都会有所帮助,谢谢!

您可以使用pandas.concat()axis设置为 1 的列上连接数据帧列表。

dfs = []

for value in values:
    sorted_tmp_df = highest_value_sorter(value)
    sorted_tmp_df = sorted_tmp_df.drop(columns=['index'])
    dfs.append(sorted_tmp_df)

df_ = pd.concat(dfs, axis=1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM