熊猫用相同的列名绘制2个数据框

时间:2019-06-27 06:33:24

标签: python pandas matplotlib

我有2个数据框,包含相同的索引和相同的列名(10列 例如: 来自df1

   A  B  C
1  0  4  8
2  5  6  9
3  2  5  1

来自df2:

   A  B  C
1  9  4  5
2  1  4  2
3  5  5  1

我想在同一张图上绘制,df1的A列与df2的A列,df1的B列与df2的B列,依此类推。 我该如何用pandas和matplotlib做到这一点

2 个答案:

答案 0 :(得分:1)

这是一种方法:

import pandas as pd
import matplotlib.pyplot as plt

d1 = {'A':[0,5,2],'B':[4,6,5],'C':[8,9,1]}
d2 = {'A':[9,1,5],'B':[4,4,5],'C':[5,2,1]}
df1 = pd.DataFrame(data=d1)
df2 = pd.DataFrame(data=d2)

df1_a = df1['A'].tolist()
df1_b = df1['B'].tolist()
df2_a = df2['A'].tolist()
df2_b = df2['B'].tolist()

plt.plot(df1_a, df1_b, 'r') 
plt.plot(df2_a, df2_b, 'b') 
plt.show()

答案 1 :(得分:0)

假设df1df2是您的数据帧,则可以使用以下代码遍历所有列并为您保存图形。

import matplotlib.pyplot as plt
import pandas as pd    
for column in df1.columns:
        x = df1[column]
        y = df2[column]

        if len(x) != len(y):
            x_ind = x.index
            y_ind = y.index
            common_ind = x_ind.intersection(y_ind)
            x = x[common_ind]
            y = y[common_ind]

        plt.scatter(x,y)
        plt.savefig("plot" +column+".png")
        plt.clf()

希望这会有所帮助!