![](/img/trans.png)
[英]pandas Dataframe divide a column with a specific value and create new column with the result?
[英]divide value of next row and create column in dataframe
我有一個CSV像
id,value
1,100
1,150
1,200
1,250
2,300
2,350
2,400
2,450
我想根據每個唯一ID的值生成一列。
例如:
raise
將像這樣划分值 我取了100,因為它是該
id
的第一個值,例如與第二個“ id”相同:
id,value
1,150
1,100
1,200
1,250
如果是這種情況,則輸出應為
id,value,raise
1,150,150/150
1,100,100/150
1,200,200/150
1,250,250/150
所以最終我的輸出將是
id value raise
0 1 100 1.000
1 1 150 1.500
2 1 200 2.000
3 1 250 2.500
4 2 300 1.000
5 2 350 1.166
6 2 400 1.333
7 2 450 1.500
我不知道如何創建它,除非在所有id
使用for循環。
並非所有值都具有相同的間隔,這只是一個示例
用GroupBy.transform
與GroupBy.first
列除以Series
創建的GroupBy.first
:
df['raise'] = df['value'].div(df.groupby('id')['value'].transform('first'))
print (df)
id value raise
0 1 100 1.000000
1 1 150 1.500000
2 1 200 2.000000
3 1 250 2.500000
4 2 300 1.000000
5 2 350 1.166667
6 2 400 1.333333
7 2 550 1.833333
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.