Python,在图表上显示特定数据行

Python, showing a specific data row on a graph

因此,我制作了一个图表,将 .csv 文件中的多行绘制到一张图表上。我想制作另一个仅包含特定行的图表以更好地分析它们。

我的数据是(只占总数的一部分):

Number  Base-BW  1-BW    2-BW   3-BW    4-End-BW
182-14  39.7    41.1    40.3    39.5    38.8
95-14   43.3    41      41.9    42.4    41.6
15-14   59.4    59.4    59.1    59.1    56.4
124-14  76.4    77.4    74.8    74.5    68.1
183-14  35      35.5    36.8    37.3    35.4

我当前的脚本是:

# import all needed modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats as st
from numpy import loadtxt
import os
%matplotlib inline
# Set some Pandas options
pd.set_option('display.notebook_repr_html', False)
pd.options.display.mpl_style = 'default'
SelectBreed = pd.read_csv('SelectBreeding(2-2-15).csv')
import matplotlib.pyplot as plt
import matplotlib.colors as cl
cl.Colormap('hsv')
plt.plot([0,1,2,3,4], (SelectBreed['Base-BW'],SelectBreed['1-BW'],SelectBreed['2-BW'],SelectBreed['3-BW'],SelectBreed['4-End-BW']))
plt.axis([0, 4, 0, 100])
plt.xlabel('Day')
plt.ylabel('Weight (g)')
plt.title('Body Weight')
plt.legend(SelectBreed['Number'], bbox_to_anchor=(1.1, 1.01))
plt.show()

产生:

那么有没有办法只显示第 1 (182-14)、3 (15-14) 和 5 (183-14) 行?或者也许只是为了绘制那些特定的行?我检查了其他问题,none 与我一样使用 .csv 文件有关。感谢您的帮助。

Pandas 库非常适合读取 .csv 文件然后对其进行分析。使用 R 中的示例数据集,

import pandas as pd
cw = pd.read_csv('ChickWeight.csv')
cw.columns

Out[166]: Index([u'weight', u'Time', u'Chick', u'Diet'], dtype='object')

cw[cw.Chick==1].plot('Time','weight')

拆开最后一行:cw[cw.Chick==1]cw 中 Chick==1 的所有行; pandas 数据帧有一个 plot 方法(我认为这是 matplotlib,所以会很熟悉)。

您还可以从数据框中进行复杂的选择,有一些很好的相关 pandas 问题。

编辑添加:use a list of values to select rows from a pandas dataframe is probably the most literal approach to your question; Selecting rows from a Pandas dataframe with a compound (hierarchical) index 非常适合基于多列进行选择(在多因素实验中一直出现)。