2024-04-25 01:52:49 发布
网友
早上好,(初学者不好)
我有以下数据帧:
我的目标是在第一次出现一个新的ID时,让VALUE列是该行的1000*DELTA。对于该ID的所有连续行,该值是当前行的增量*上方的行的值。你知道吗
我尝试获取所有唯一的ID值:
a=stocks2.ID.unique() a.tolist()
很不幸,我不知道如何以我描述的方式进行迭代。任何形式的帮助或提示将不胜感激!你知道吗
方法如下。数据帧示例:
df = pd.DataFrame({'ID':[1,1,5,3,3], 'delta':[0.3,0.5,0.2,2,4]}).assign(value=[2,5,4,2,3]) print(df) ID delta value 0 1 0.3 2 1 1 0.5 5 2 5 0.2 4 3 3 2.0 2 4 3 4.0 3
从上一行填充value,如下所示:
value
df['value'] = df.shift(1).delta * df.shift(1).value
^{}要获取第一个ID出现的索引:
ID
w = df.groupby('ID', as_index=False).nth(0).index.values
并使用w中的索引计算value的值:
w
df.loc[w,'value'] = df.loc[w,'delta'] * 1000
在这个例子中:
ID delta value 0 1 0.3 300.0 1 1 0.5 0.6 2 5 0.2 200.0 3 3 2.0 2000.0 4 3 4.0 4.0
方法如下。数据帧示例:
从上一行填充
value
,如下所示:^{} 要获取第一个
ID
出现的索引:并使用
w
中的索引计算value
的值:在这个例子中:
相关问题 更多 >
编程相关推荐