Pandas로 데이터 세트 읽기 및 조작(2)

시장 조작



데이터 프레임의 열 하나만 표시해야 한다고 가정해 보겠습니다. 데이터 세트의 '고정 산도' 열을 보려면 다음과 같이 작성해야 합니다.

df['fixed acidity']




예를 들어 이 열에 조건을 추가하면 고정 산도가 9보다 높은 행을 보려면 다음과 같이 하십시오.

df[df['fixed acidity']>9]




경우에 따라 열에 여러 조건이 추가된 행이 필요할 수 있습니다.

df[(df['fixed acidity']>9) & (df['citric acid']>0.5)]




특정 열을 찾아야 하는 경우:

df.loc[:,['volatile acidity', 'chlorides']]




예를 들어 '고정 산도'가 9.2인 행의 '휘발성 산도' 및 '염화물' 함량을 확인하고 싶을 수 있습니다.

df.loc[df['fixed acidity'] == 9.2, ['fixed acidity','volatile acidity', 'chlorides']]




다음과 같이 특정 인덱스에 대한 행도 볼 수 있습니다(이전 장에서 설명한 대로).

df.loc[0:3, ['volatile acidity', 'chlorides']]




이제 특정 값(예: 0행 와인의 알코올 함량)을 찾으려는 경우:

df['alcohol'].loc[0]


그리고 당신은 9.4의 값을 얻을 것입니다

색인을 사용하여 행을 찾을 수도 있습니다.

df.iloc[100]




이제 예를 들어 100번째 행의 첫 번째 속성(이 경우 휘발성 산도)과 같이 이 내에서 값을 지정하려면 다음을 시도하십시오.

df.iloc[100][1]


예상대로 0.61을 얻게 됩니다.

이 iloc 명령을 사용하여 특정 연속 행과 열을 찾을 수 있습니다(예: 3~7번째 행의 처음 세 열).

df.iloc[3:8, 0:3]




연속되지 않은 행과 열도 있습니다.

df.iloc[[71, 122, 400], [0, 2]]




데이터 프레임에 새 열을 추가하려면 어떻게 해야 합니까? 모든 행에 대해 'hi'라는 단어를 포함하는 '새 열'을 추가해 보겠습니다.

df['new column'] = 'hi'
df.head()




iloc을 사용하여 데이터 프레임의 0번째 인덱스의 'new column' 값을 'hi'에서 'bye'로 변경해 보겠습니다.

df.iloc[0, df.columns.get_loc('new column')]= 'bye'
df.head()




이제 'by'로 시작하는 단어(방금 추가한 단어)를 찾아 'hello'로 바꾸겠습니다.

df['new column'].loc[df['new column'].str.startswith('by')] = 'hello'
df.head()




pandas를 사용하여 데이터의 null 값을 바꿀 수도 있습니다. 여기에는 null 값이 없으므로 먼저 null 값을 소개하겠습니다. 문자열 'hello'를 null로 바꾸겠습니다. 그렇게 하려면 numpy 라이브러리가 필요합니다.

import numpy as np
df['new column'].loc[df['new column'].str.startswith('hel')] = np.nan
df.head()




null 값의 수를 확인하려면 다음과 같이 isna() 메서드를 사용할 수 있습니다.

df.isna().sum()




이 isna() 메서드를 사용하여 다음과 같이 null 값을 찾을 수도 있습니다.

pd.isna(df.head())




null 값을 'hey'로 바꾸자.

df.fillna(value='hey', inplace=True)
df.head()




null 값을 삭제하려면 dropna() 메서드를 사용하십시오.

이제 루프를 사용하여 새 데이터 프레임을 만들려고 합니다. 여기서 새 데이터 프레임의 한 열은 데이터 프레임 df의 '새 열'과 동일하게 보입니다.

rows = []
for i in range(df.shape[0]):
     rows.append(['hi', 'bye'])
df_new = pd.DataFrame(rows, columns=["new column 2", "new column 3"])
df_new.iloc[0, df_new.columns.get_loc('new column 2')]= 'hey'
df_new.head()




공통 속성을 사용하여 이 두 데이터 프레임을 병합할 수 있습니다.

df_merged = df.merge(df_new, left_on='new column', right_on='new column 2')
df_merged.head()




일치하지 않는 특성을 삭제하거나 공통 이름이 있는 열을 사용하는 등 병합 작업에서 필요한 변형을 만들 수 있습니다.

데이터 프레임을 그룹화할 수도 있습니다.

df.groupby(['volatile acidity', 'chlorides']).count().head()




합계와 같은 다른 속성을 사용하여 데이터 프레임을 그룹화할 수도 있습니다.

데이터 프레임 조작을 완료하면 데이터를 시각화할 준비가 된 것입니다.

좋은 웹페이지 즐겨찾기