我一直在使用matplotlib已经很长一段时间了,但很棒,我想切换到熊猫,我的第一次尝试并没有那么顺利。
我的数据集如下所示:
sam,123,184,2.6,543
winter,124,284,2.6,541
summer,178,384,2.6,542
summer,165,484,2.6,544
winter,178,584,2.6,545
sam,112,684,2.6,546
zack,145,784,2.6,547
mike,110,984,2.6,548
etc.....
我想首先在csv中搜索名为mike的任何内容并创建自己的列表。现在有了这个列表,我希望能够做一些数学运算,例如添加sam[3] + winter[4]
或sam[1]/10
。最后一部分是将列相互绘制。
浏览此页面
http://pandas.pydata.org/pandas-docs/stable/io.html#io-read-csv-table
我唯一看到的是如果我有一个列标题,但是,我没有任何标题。我只知道我想要的一行中的位置。
所以我的问题是:
matplotlib
绘图来绘制pandas dataframe吗?即:
fig1 = plt.figure(figsize= (10,10))
ax = fig1.add_subplot(211)
ax.plot(mike[1], winter[3], label='Mike vs Winter speed', color = 'red')
答案 0 :(得分:1)
您可以阅读没有标题的csv:
data=pd.read_csv(filepath, header=None)
列将从0开始编号。 选择和过滤:
all_summers = data[data[0]=='summer']
如果您想要按第一列进行某些操作分组,它将如下所示:
data.groupby(0).sum()
data.groupby(0).count()
...
分组后选择一行:
sums = data.groupby(0).sum()
sums.loc['sam']
绘图示例:
sums.plot()
import matplotlib.pyplot as plt
plt.show()
有关绘图的详细信息,请参阅:http://pandas.pydata.org/pandas-docs/version/0.18.1/visualization.html
答案 1 :(得分:-1)
df = pd.read_csv(filepath, header=None)
mike = df[df[0]=='mike'].values.tolist()
winter = df[df[0]=='winter'].values.tolist()
然后你可以按照你想要的那样绘制那些列表
fig1 = plt.figure(figsize= (10,10))
ax = fig1.add_subplot(211)
ax.plot(mike, winter, label='Mike vs Winter speed', color = 'red')