Python 如何找到每行包含列表的数据框列的标准偏差?
我有一个熊猫数据框 dd1= 现在我想通过将C列值与结果列的第一个值相加,然后将结果列的第二个值与C列值相加,来查找结果列的标准值,依此类推。。我想把std的结果加在另一列中 我想像这样将值传递给std函数Python 如何找到每行包含列表的数据框列的标准偏差?,python,pandas,dataframe,standard-deviation,Python,Pandas,Dataframe,Standard Deviation,我有一个熊猫数据框 dd1= 现在我想通过将C列值与结果列的第一个值相加,然后将结果列的第二个值与C列值相加,来查找结果列的标准值,依此类推。。我想把std的结果加在另一列中 我想像这样将值传递给std函数 for 1st row :- it will pass because it is empty. for 2nd row :- std([6,27])=14.84,std([32,27])=3.53 找到std后,只需将该值相加并存储在输出列中,如(14.84+3.53)=18.37
for 1st row :- it will pass because it is empty.
for 2nd row :- std([6,27])=14.84,std([32,27])=3.53
找到std后,只需将该值相加并存储在输出列中,如(14.84+3.53)=18.37
输出如下:-dd1=
A B C D E F Result output
10 18 13 11 9 25 [] []
6 32 27 3 18 28 [6,32] 18.37
4 6 3 29 2 23 [29,35,87] 100.39
尝试使用
lambda
和apply
:
l = lambda x: sum([np.std([x['C'], i], ddof=1) for i in x['Result']])
dd1['output'] = dd1.apply(l, 1)
np.std([6,27])给出了10.5。我遗漏了什么吗?有两种类型的std样本标准偏差和总体标准偏差。。我想你是用样本标准差来计算的。只要尝试使用总体标准偏差,您就会得到值@MEdwin@vishwajeet请参阅下面的@hacker315答案-我使用它获得了预期的结果。如果您希望它创建一个新列,那么只需将
dd1.apply(l,1)
替换为dd1['output']=dd1.apply(l,1)
我没有得到想要的输出。下面给出的代码无法添加std..@Prebsus或@peterSmith@vishwajeet6.27的标准偏差不是14.84,32.27的标准偏差不是3.53。。。请查收。。
A B C D E F Result output
10 18 13 11 9 25 [] []
6 32 27 3 18 28 [6,32] 18.37
4 6 3 29 2 23 [29,35,87] 100.39
l = lambda x: sum([np.std([x['C'], i], ddof=1) for i in x['Result']])
dd1['output'] = dd1.apply(l, 1)