【问题标题】:Join two or more DFs with same size加入两个或多个相同大小的 DF
【发布时间】:2022-02-25 01:46:49
【问题描述】:

我有两个数据框,如下图:

dataframe 1

dataframe 2

并输入参数CSV:

parameters csv

从两个 DF,我可以生成这个图:

代码:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

df_1 = pd.read_csv("2DBM_50x50_Central_Aug21_Sim.cliped.csv")
df_2 = pd.read_csv("2DBM_50x50_Mauari_Aug21_Sim.cliped.csv")
df_all = pd.concat([df_1, df_2], axis=0)

variables = ["AAG", "DENS", "SRG", "RCG", "Thick"]
var_range = range(1, 101)

fig, axes = plt.subplots(2, 3)
flattened_axes = fig.axes
flattened_axes[-1].set_visible(False)

for i, var in enumerate(variables):
    var_columns = [f"TB_acc_{var}[{j:05}]" for j in var_range]
    data = df_all.melt(id_vars=["Period"], value_vars=var_columns, value_name=var)
    ax = flattened_axes[i]
    sns.boxplot(x="Period", y=var, width=0.2, linewidth =3, data=data, ax=ax, showfliers=False, color = "skyblue")
plt.tight_layout()
plt.show()

但是,我需要通过将代码与 parameters csv 集成来做到这一点。所以,我有:

Code

这段代码为输入CSV的每一行生成单独的图表,并且每一行都有一个DF输入:

图表df_1:

图表df_2:

因此,我的任务是使代码与 参数 CSV 集成能够在单个 DF 中加入两个 DF,然后将其绘制成一个图表。


关于如何做到这一点的任何建议?

【问题讨论】:

  • 请不要删除对理解问题至关重要的图像。删除您不再需要的问题的机会有限,如果该问题没有引起任何赞成的答案,则可以这样做。既然你有一个赞成的答案,我相信你不能删除,除非回答者删除他们的帖子。我们通常不鼓励这样做,因为它会破坏内容。

标签: python pandas matplotlib seaborn boxplot


【解决方案1】:

您只需阅读您的parameters.csv 文件并过滤TRUE 的行。然后,从其输出中选择FilePath 列以读取并连接各个数据帧。

import pandas as pd

parameters = pd.read_csv('parameters.csv')
files_to_read = parameters[parameters['DoScenario']]['FilePath']
dfs_list = [pd.read_csv(f) for f in files_to_read]
df_concat = pd.concat(dfs_list, ignore_index=True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    • 2021-08-03
    • 2022-01-02
    • 2021-12-07
    • 1970-01-01
    • 2011-01-26
    相关资源
    最近更新 更多