使用Panda解析CSV文件

时间:2016-11-17 22:59:28

标签: python pandas

我一直在使用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

我唯一看到的是如果我有一个列标题,但是,我没有任何标题。我只知道我想要的一行中的位置。

所以我的问题是:

  1. 如何为每一行(山姆,冬天,夏天)创建一堆列表
  2. 如果我的csv有数百万个数据点,这种方法是否有效?
  3. 我可以使用matplotlib绘图来绘制pandas dataframe吗?
  4. 即:

    fig1 = plt.figure(figsize= (10,10))
    ax = fig1.add_subplot(211)
    ax.plot(mike[1], winter[3], label='Mike vs Winter speed', color = 'red')
    

2 个答案:

答案 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')