|
30鱼币
本帖最后由 flyps 于 2021-9-6 19:55 编辑
下面的代码,是求得df中所有的,每个数字的余数,而我并不想求得所有号码的余数,我希望,如,df.loc[0]余数为1,就跳过1行不操作,到df.loc[2]再操作求余,df.loc[2]余数为9,则跳过9行不操作,到df.loc[12]再操作求余。
- import numpy as np
- import pandas as pd
- A = np.random.randint(0,100,100)
- df = pd.DataFrame(A,columns=['a'])
- df
- '''
- a
- 0 41
- 1 79
- 2 49
- 3 2
- 4 51
- ... ...
- 95 68
- 96 5
- 97 12
- 98 43
- 99 23
- 100 rows × 1 columns
- '''
- def calc(x):
- return x % 10
- ex = df['a'].apply(calc)
- ex
- '''
- 0 1
- 1 9
- 2 9
- 3 2
- 4 1
- ..
- 95 8
- 96 5
- 97 2
- 98 3
- 99 3
- Name: a, Length: 100, dtype: int64
- '''
复制代码
本帖最后由 louxinghao 于 2021-9-6 22:33 编辑
看明白了
- import numpy as np
- import pandas as pd
- A = np.random.randint(0,100,100)
- df = pd.DataFrame(A,columns=['a'])
- n = 0
- def calc(x):
- global n
- if x != n:
- return None
- r = df.loc[x].a % 10
- n = x + r + 1
- return r
- # 返回 nan 的就是不计算的
- df['b'] = df.index.map(calc)
复制代码
|
|