有效地绘制熊猫中的多个列

时间:2014-08-28 22:44:12

标签: python pandas

我想知道如何在pandas数据帧中有效地绘制多列组。

我有以下数据框

        | a | b | c |...|trial1.1|trial1.2|...|trial1.12|trial2.1|...|trial2.12|trial3.1|...|trial3.12|
GlobalID|
sd12f   |...|...|...|...| 210.1  | 213.1  |...| 170.1   | 176.2  |...| 160.31  | 162.4  |...| 186.1   | 
...

我想循环遍历行,每行绘制三个波形:trial1.[1-12]trial2.[1-12]trial3.[1-12]。最有效的方法是什么?现在我有:

t1 = df.ix[0][df.columns[[colname.startswith('trial1') for colname in df]]]
t2 = df.ix[0][df.columns[[colname.startswith('trial2') for colname in df]]]
t3 = df.ix[0][df.columns[[colname.startswith('trial3') for colname in df]]]
t1.astype(float).plot()
t2.astype(float).plot()
t3.astype(float).plot()

我需要.astype(float),因为这些值最初是字符串。是否有一些更有效的方法,我失踪了?我是python和pandas的新手。

1 个答案:

答案 0 :(得分:0)

如何首先横向数据帧,然后通过试验分割数据帧,然后绘图。

# Transverse
data = pd.read_csv("data.txt").T

# Insert your code to remove irrelevant rows, like a, b, c in your example
#

# Group by the trial number (the first six characters) and plot
data.groupby(lambda x: x[:6], axis=0).plot()