根据DataFram中的其他列值修改前n行中的列

2024-04-24 21:28:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想根据数据帧中的其他列值修改前n行中的列。像这样:

df.loc[(df.A == i), 'B'][0:10] = 100

它不起作用。
我也尝试过像这样对前n行进行抽样:

^{pr2}$

{cd1>但是返回了^


Tags: 数据dfloccd1列值pr2
2条回答

您可以像这样使用headloc

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))

输出:

^{pr2}$

我只能想出这个

df.loc[(df.A==i)&(df.index.isin(df.iloc[:10,:].index)),'B']=100

对于sample,这将起作用

^{pr2}$

并基于对github的讨论

您永远不应该进行这种链式就地设置。这只是一种不好的做法。

注:(df.sample(10)).loc[(df.A == i), 'B'] = 100#这是链接的就地设置

相关问题 更多 >