pandas在N索引后递增计数器[重复]

f45qwnt8  于 2023-10-14  发布在  其他
关注(0)|答案(1)|浏览(88)

此问题已在此处有答案

How to label every nth row of a pandas dataframe by an incremental value(4个答案)
8天前关闭
我有一个 Dataframe ,看起来像这样。

df = pd.Series(["this" , "is" "some",  "text" ,  "which",  "is",  "not",  "valid"]).to_frame(name='my_text')

现在我想插入一个新列“ID”,从1到N(某个整数)。它将在K行之后递增。假设这里K是3,那么索引0到2将具有ID =1,3到5将具有ID = 2,最后一个索引将具有ID = 3。
这可以用pandas的方式来完成,而不需要任何循环。
Thanks in advance

bq3bfh9z

bq3bfh9z1#

我想你可以这样解决:

import pandas as pd

df = pd.Series(["this", "is", "some", "text", "which", "is", "not", "valid"]).to_frame(name='my_text')

K = 2

df['ID'] = (df.index // K) + 1

print(df)

ID列的计算方法是将每行的索引除以K(使用整数除法)。这将为每K行分配相同的ID值(即,每K行递增一次ID)。

相关问题