更改数据系列中的值
Changing Values in a Data Series
我想更改数据框中一列中的值,以便实际更改我的数据。这就是我所做的:
cgc_data['return_sign'].apply(lambda val : 1.0 if val >= 0 else 0)
但这是我得到的:
cgc_data.groupby(['return_sign']).mean()
Price 1d ret 5d ret 10d ret 15d ret 3d sma 10d sma 10d ema
return_sign
-1.0 14.514507 -0.028492 -0.020618 -0.014593 -0.006056 14.819721 14.920520 14.882363
0.0 4.026313 0.000000 0.002574 0.007628 -0.004837 4.023833 3.922193 3.959923
1.0 14.979745 0.035238 0.044716 0.062569 0.079726 14.632116 14.462354 14.509330
我还有0。如何调整数据框?
试试这个:
cgc_data.loc[:,'return_sign'] = cgc_data.return_sign.apply(lambda val : 1.0 if val >= 0 else 0)
您需要将结果重新写入 return_sign
列。
你使用.apply
功能后有没有返回数据。
试试这个:
cgc_data['return_sign'] = cgc_data['return_sign'].apply(lambda val : 1.0 if val >= 0 else 0)
然后继续下一步
如果您在单个列上操作,切勿使用 apply
,因为它非常慢。而是使用 map
cgc_data['return_sign'] = cgc_data['return_sign'].map(lambda val : 1.0 if val >= 0 else 0)
希望对您有所帮助!!
您必须将值重新分配回原始数据框。
cgc_data['return_sign'] = np.where(cgc_data['return_sign'] >= 0, 1, 0)
此外,.apply
可以通过使用 np.where 的矢量化得到改进。
我想更改数据框中一列中的值,以便实际更改我的数据。这就是我所做的:
cgc_data['return_sign'].apply(lambda val : 1.0 if val >= 0 else 0)
但这是我得到的:
cgc_data.groupby(['return_sign']).mean()
Price 1d ret 5d ret 10d ret 15d ret 3d sma 10d sma 10d ema
return_sign
-1.0 14.514507 -0.028492 -0.020618 -0.014593 -0.006056 14.819721 14.920520 14.882363
0.0 4.026313 0.000000 0.002574 0.007628 -0.004837 4.023833 3.922193 3.959923
1.0 14.979745 0.035238 0.044716 0.062569 0.079726 14.632116 14.462354 14.509330
我还有0。如何调整数据框?
试试这个:
cgc_data.loc[:,'return_sign'] = cgc_data.return_sign.apply(lambda val : 1.0 if val >= 0 else 0)
您需要将结果重新写入 return_sign
列。
你使用.apply
功能后有没有返回数据。
试试这个:
cgc_data['return_sign'] = cgc_data['return_sign'].apply(lambda val : 1.0 if val >= 0 else 0)
然后继续下一步
如果您在单个列上操作,切勿使用 apply
,因为它非常慢。而是使用 map
cgc_data['return_sign'] = cgc_data['return_sign'].map(lambda val : 1.0 if val >= 0 else 0)
希望对您有所帮助!!
您必须将值重新分配回原始数据框。
cgc_data['return_sign'] = np.where(cgc_data['return_sign'] >= 0, 1, 0)
此外,.apply
可以通过使用 np.where 的矢量化得到改进。