我想知道如何在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的新手。
答案 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()