我想根据DataFrame中的其他列值修改前n行中的列。像这样:
df.loc[(df.A == i), 'B'][0:10] = 100
它不起作用。
我也尝试过的事情就是先排样n行:
(df.sample(10)).loc[(df.A == i), 'B'] = 100
但它返回了ValueError: cannot reindex from a duplicate axis
答案 0 :(得分:2)
我只能想出这个
fakePromise.promise.mockImplementation((params, callback) => callback(null, {Items:[1,2,3]}))
对于df.loc[(df.A==i)&(df.index.isin(df.iloc[:10,:].index)),'B']=100
,这将有效
sample
的讨论为基础
你永远不应该进行这种类型的链式就地设置。这只是不好的做法。
PS:s=(df.sample(10))
s.loc[(df.A == i), 'B'] = 100
#这是链接到位设置
答案 1 :(得分:2)
您可以像这样使用loc
和import pandas as pd
import numpy as np
df = pd.DataFrame({'A':np.arange(100),'B':[1]*100})
df.loc[df[(df.A % 2 == 0)].head(10).index,'B'] = 100
print(df.head(25))
:
A B
0 0 100
1 1 1
2 2 100
3 3 1
4 4 100
5 5 1
6 6 100
7 7 1
8 8 100
9 9 1
10 10 100
11 11 1
12 12 100
13 13 1
14 14 100
15 15 1
16 16 100
17 17 1
18 18 100
19 19 1
20 20 1
21 21 1
22 22 1
23 23 1
24 24 1
输出:
{{1}}