Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从不同的Dataframe打印多个列_Python_Pandas_Python 3.6 - Fatal编程技术网

Python 从不同的Dataframe打印多个列

Python 从不同的Dataframe打印多个列,python,pandas,python-3.6,Python,Pandas,Python 3.6,我一直在尝试用python制作一个情节,但我在语法方面面临挑战。我在谷歌上搜索过,但找不到合适的 我有三个数据帧。第一个数据帧中的数据类似于附加的pic 我还有两个数据帧,每个数据帧包含一列。一个有过去几年的最高温度,如下所示,另一个有最低温度。虽然第二个DF没有DF1中的城市名称列,但DF2中的最高温度是DF1中提到的城市名称 数据帧3 我想做一个线条图,其中x轴应该有城市名称,Y轴必须是这样,它可以容纳来自DF1的温度,来自DF2的最大温度,以及来自DF3的最小温度。我想将所有三条直线

我一直在尝试用python制作一个情节,但我在语法方面面临挑战。我在谷歌上搜索过,但找不到合适的

我有三个数据帧。第一个数据帧中的数据类似于附加的pic

我还有两个数据帧,每个数据帧包含一列。一个有过去几年的最高温度,如下所示,另一个有最低温度。虽然第二个DF没有DF1中的城市名称列,但DF2中的最高温度是DF1中提到的城市名称

数据帧3


我想做一个线条图,其中x轴应该有城市名称,Y轴必须是这样,它可以容纳来自DF1的温度,来自DF2的最大温度,以及来自DF3的最小温度。我想将所有三条直线图合并到同一个图表中。

您可以这样做:

import pandas as pd
import matplotlib.pyplot as plt

# create data:
df1 = pd.DataFrame({"City Name": ["Toronto", "NYC"],
                    "Temp": [10, 20],
                    "Rainfall": [100, 232]})

df2 = pd.DataFrame({"Max Temp": [20, 25]})

df3 = pd.DataFrame({"Min Temp": [0, -10]})

# concatenate all data into one dataframe:
df = pd.concat([df1, df2, df3], axis=1)

# drop rainfall column from data:
df.drop("Rainfall", 1)

# change index to city names:
df.index = df["City Name"]

# drop city name column from data:
df.drop("City Name", 1)

plt.plot(df)
plt.legend(df.columns)
这将给你:


熊猫。DataFrame
具有内置方法。如果只有一个数据帧,则可以执行以下操作:

df.plot('City Name', 'Max Temp')
如果具有相同长度的不同数据帧,则可以使用
pd.concat
附加它们(还有其他几个选项)。我也不知道原因,但是
df.plot
它没有显示阴极x轴:您可以通过添加
plt.ticks来纠正它。代码示例:

df1 = pd.DataFrame({'cityname': ['A', 'B', 'C']}, dtype='U4')
df2 = pd.DataFrame({'Tmax': [10, 20, 30]})
df3 = pd.DataFrame({'Tmin': [10, 20, 30]})
#linestyle dashed, color green (default is fill blue)
pd.concat([df1, df2, df3], axis=1).plot('cityname', 'Tmax', linestyle='--', color='g')
plt.xticks(*zip(*enumerate(df1['cityname'])))

数据帧是否为熊猫
dataframes?@apitsch是。这些是数据帧。