我有一个非常大的数据文件df
(超过1000万行和20列)。我将一个值与同一列(df['Name']
)的前一行中的值进行比较。如果值相同,则第二列(df['Run']
)中的值保持不变,否则,该值将增加1。你知道吗
下面是输出的示例。你知道吗
Name Run
e679 1
k3333 2
k3333 2
k3333 2
u772 3
u772 3
2000 4
2000 4
2000 4
... ...
目前我正在使用以下代码:
run=1
df['Run'].iloc[0]=run
for i in range(1,len(df)):
if df['Name'].iloc[i] == df['Name'].iloc[i-1]:
df['Run'].iloc[i] = run
else:
run = run+1
df['Run'].iloc[i] = run
这段代码可以工作,但速度很慢。我想有一个更有效的方法来做同样的事,有人有这样的经验吗?你知道吗
谢谢你!你知道吗
使用^{} 如下所示:
注NaN将标记为-1
这应该起作用:
df['Run'] = (df['Name'] != df['Name'].shift()).cumsum()
相关问题 更多 >
编程相关推荐