我的数据框的格式为277列和4000+行
df = pd.DataFrame({
'TCTN':list('101','102','103','104')
'0':[855days,626days,866days],
'1':[946days,485days,182days],
'2':[1242days,1985days,0days],
'3':[345days,1864days,361days],
})
我需要找到各个行的标准偏差并将其保存到新列['STD'] 这是我尝试过的:
df3['STDDEV']=df3.apply(np.std(axis=1))
但是我得到了错误:
TypeError: _std_dispatcher() missing 1 required positional argument: 'a'
这是因为我需要在应用函数之前转换数据类型吗? 我对使用python中的数据非常陌生,非常感谢! :)
答案 0 :(得分:2)
如果使用timedeltas更好,请在必要时使用DataFrame.std
并省略第一列,如果需要像ddof=0
一样的行为,也添加np.std
,因为默认的熊猫ddof=1
: / p>
df3['STDDEV'] = df3.iloc[:, 1:].std(axis=1, ddof=0)
print (df3)
TCTN 0 1 2 3 STDDEV
0 101 855 days 946 days 1242 days 345 days 323 days 05:21:59.628482
1 102 626 days 485 days 1985 days 1864 days 687 days 15:28:38.826254
2 103 866 days 182 days 0 days 361 days 322 days 21:48:52.946864
如果第一列是索引:
df3['STDDEV'] = df3.std(axis=1, ddof=0)
print (df3)
1 2 3 STDDEV
TCTN
101 946 days 1242 days 345 days 373 days 04:31:14.711017
102 485 days 1985 days 1864 days 680 days 09:10:40.121445
103 182 days 0 days 361 days 147 days 09:06:14.040307