programing

팬더를 사용하여 새 기둥에 증분 숫자를 추가하는 방법

testmans 2023. 10. 27. 21:47
반응형

팬더를 사용하여 새 기둥에 증분 숫자를 추가하는 방법

다음과 같은 단순화된 데이터 프레임이 있습니다.

ID   Fruit
F1   Apple
F2   Orange
F3   Banana 

데이터 프레임의 시작 부분에 새 열을 추가하고자 합니다.df['New_ID']숫자가 있는880각 행에 하나씩 증가합니다.

출력은 단순히 다음과 같아야 합니다.

New_ID   ID   Fruit
880      F1   Apple
881      F2   Orange
882      F3   Banana  

나는 다음을 시도했습니다.

df['New_ID'] = ["880"] # but I want to do this without assigning it the list of numbers literally

이 문제를 어떻게 푸는지 아세요?

감사합니다!

df.insert(0, 'New_ID', range(880, 880 + len(df)))
df

enter image description here

여기:

df = df.reset_index()
df = df.rename(columns={"index":"New_ID"})
df['New_ID'] = df.index + 880

데이터 프레임과 길이가 같은 id 값의 목록으로 간단히 팬더 열을 설정할 수도 있습니다.

df['New_ID'] = range(880, 880+len(df))

참조 문서 : https://pandas.pydata.org/pandas-docs/stable/missing_data.html

df = df.assign(New_ID=[880 + i for i in xrange(len(df))])[['New_ID'] + df.columns.tolist()]

>>> df
   New_ID  ID   Fruit
0     880  F1   Apple
1     881  F2  Orange
2     882  F3  Banana

다음 코드를 사용했습니다.

df.insert(0, 'id', range(1, 1 + len(df)))

그래서 나의 id열은 다음과 같습니다.

1, 2, 3, ...

인덱스가 0에서 시작하여 1(즉, 기본값)씩 증가하는 팬더 DataFrame의 경우 다음 작업을 수행할 수 있습니다.

df.insert(0, 'New_ID', df.index + 880)

네가 원한다면New_ID첫 번째 칸이 될 겁니다그렇지 않으면 마지막에 있어도 상관없다면 다음과 같이 하십시오.

df['New_ID'] = df.index + 880
import numpy as np

df['New_ID']=np.arange(880,880+len(df.Fruit))
df=df.reindex(columns=['New_ID','ID','Fruit'])

체인식이 길고 값이 증가하는 열을 추가하고자 하지만 데이터 프레임의 길이(일부 체인식이 그룹 또는 집계이기 때문에)를 모르는 경우 다음을 사용하여 이 작업을 수행할 수도 있습니다.assign()그리고.lambda

df.assign(New_ID = lambda x: range(880, 880 + len(x))

언급URL : https://stackoverflow.com/questions/38862293/how-to-add-incremental-numbers-to-a-new-column-using-pandas

반응형