팬더 데이터 프레임 열의 몇 개 값을 다른 값으로 바꿉니다.
팬더 데이터 프레임이 있어요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'
언급URL : https://stackoverflow.com/questions/27060098/replacing-few-values-in-a-pandas-dataframe-column-with-another-value
'programing' 카테고리의 다른 글
(Dis)Bluetooth 기기를 Windows와 연결합니다.장치들.블루투스.Rfcomm (WP8.1) (0) | 2023.10.11 |
---|---|
참조 어셈블리 PDB 및 XML 파일이 출력에 복사되지 않도록 방지 (0) | 2023.10.11 |
문자열 종료를 무효 (0) | 2023.10.11 |
개인 구성원 데이터 직렬화 중 (0) | 2023.10.06 |
레코드 또는 업데이트가 이미 있는 경우 삽입하는 방법은 무엇입니까? (0) | 2023.10.06 |