programing

팬더 데이터 프레임 열의 몇 개 값을 다른 값으로 바꿉니다.

oldcodes 2023. 10. 11. 20:57
반응형

팬더 데이터 프레임 열의 몇 개 값을 다른 값으로 바꿉니다.

팬더 데이터 프레임이 있어요df아래 그림과 같이:

BrandName Specialty
A          H
B          I
ABC        J
D          K
AB         L

교체하고 싶습니다.'ABC'그리고.'AB'종렬로BrandName타고'A'. 누가 도와줄 수 있습니까?

가장 쉬운 방법은 열에 메소드를 사용하는 것입니다.인수는 바꿀 대상의 목록입니다(여기).['ABC', 'AB']) 및 대체할 항목( 문자열)'A'이 경우):

>>> df['BrandName'].replace(['ABC', 'AB'], 'A')
0    A
1    B
2    A
3    D
4    A

그러면 새 일련의 값이 생성되므로 이 새 열을 올바른 열 이름에 할당해야 합니다.

df['BrandName'] = df['BrandName'].replace(['ABC', 'AB'], 'A')

교체하다

DataFrame오브젝트는 강력하고 유연한 메소드를 가지고 있습니다.

DataFrame.replace(
        to_replace=None,
        value=None,
        inplace=False,
        limit=None,
        regex=False, 
        method='pad',
        axis=None)

참고, 만약 장소를 변경할 필요가 있다면 다음을 사용합니다.inplace부울 인수replace방법:

인플레이스

제자리: 부울, 기본값False한다면True, 제자리에참고: 이 개체에 대한 다른 보기(예: DataFrame 열 형태)를 수정합니다.발신자를 반환합니다.True.

토막글

df['BrandName'].replace(
    to_replace=['ABC', 'AB'],
    value='A',
    inplace=True
)

loc method를 사용하여 여러 값을 대체할 수 있습니다.

df.loc[df['BrandName'].isin(['ABC', 'AB'])] = 'A'

당신은 또한 통과할 수 있습니다.dict에게pandas.replace방법:

data.replace({
    'column_name': {
        'value_to_replace': 'replace_value_with_this'
    }
})

다음과 같이 여러 열에서 여러 값을 한 번에 바꿀 수 있는 장점이 있습니다.

data.replace({
    'column_name': {
        'value_to_replace': 'replace_value_with_this',
        'foo': 'bar',
        'spam': 'eggs'
    },
    'other_column_name': {
        'other_value_to_replace': 'other_replace_value_with_this'
    },
    ...
})

이 솔루션은 기존 데이터 프레임 자체를 다음과 같이 바꿉니다.

mydf = pd.DataFrame({"BrandName":["A", "B", "ABC", "D", "AB"], "Speciality":["H", "I", "J", "K", "L"]})
mydf["BrandName"].replace(["ABC", "AB"], "A", inplace=True)

단지 두 가지 주요 방식 에 성능 차이가 없다는 것을 보여주고 싶었습니다.

df = pd.DataFrame(np.random.randint(0,10,size=(100, 4)), columns=list('ABCD'))

def loc():
    df1.loc[df1["A"] == 2] = 5
%timeit loc
19.9 ns ± 0.0873 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)


def replace():
    df2['A'].replace(
        to_replace=2,
        value=5,
        inplace=True
    )
%timeit replace
19.6 ns ± 0.509 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

데이터 프레임 생성:

import pandas as pd
dk=pd.DataFrame({"BrandName":['A','B','ABC','D','AB'],"Specialty":['H','I','J','K','L']})

지금사용DataFrame.replace()함수:

dk.BrandName.replace(to_replace=['ABC','AB'],value='A')

loc을 사용하여 조건에 따라 교체하고 열 이름을 지정할 수 있습니다.

df = pd.DataFrame([['A','H'],['B','I'],['ABC','ABC'],['D','K'],['AB','L']],columns=['BrandName','Col2'])
df.loc[df['BrandName'].isin(['ABC', 'AB']),'BrandName'] = 'A'

산출량
enter image description here

언급URL : https://stackoverflow.com/questions/27060098/replacing-few-values-in-a-pandas-dataframe-column-with-another-value

반응형