我正在尝试绘制一些数据随时间变化的散点图,并将标准偏差作为误差线。我对两个不同样品 A 和 B 的每个时间点进行三次测量。
Date A1 A2 A3 B1 B2 B3
1/1/17 4 5 6 2 3 4
1/2/17 6 7 8 5 6 4
Run Code Online (Sandbox Code Playgroud)
所以我正在导入这样的数据:
import pandas as pd
columns = ['Date', 'A1', 'A2', 'A3', 'B1', 'B2', 'B3']
dat = pd.read_csv('data', sep='\t', names=columns)
Run Code Online (Sandbox Code Playgroud)
那么我如何组合重复列以便我可以计算标准偏差然后绘图?我正在考虑重命名 A 和 B 列,使它们相同,然后可以合并?
我不得不承认,我并没有真正得到你想要的,但我认为这很酷。
groupby/agg但它尚未在列上实现mean并stdd = df.T.groupby(lambda x: x[0]).agg(['mean', 'std']).T
d.xs('mean', level=1).plot.bar(yerr=d.xs('std', level=1))
Run Code Online (Sandbox Code Playgroud)
或路径略有不同的相同想法
d = df.T.groupby(lambda x: x[0]).agg(['mean', 'std']).stack(0).unstack(0)
d['mean'].plot.bar(yerr=d['std'])
Run Code Online (Sandbox Code Playgroud)
否则,我们可以做一个减少
df.groupby(lambda x: x[0], 1).mean()
A B
Date
1/1/17 5 3
1/2/17 7 5
Run Code Online (Sandbox Code Playgroud)