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()
합계와 같은 다른 속성을 사용하여 데이터 프레임을 그룹화할 수도 있습니다.
데이터 프레임 조작을 완료하면 데이터를 시각화할 준비가 된 것입니다.
Reference
이 문제에 관하여(Pandas로 데이터 세트 읽기 및 조작(2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/orthymarjan/reading-and-manipulating-the-dataset-with-pandas-2-4b32
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
df['fixed acidity']
df[df['fixed acidity']>9]
df[(df['fixed acidity']>9) & (df['citric acid']>0.5)]
df.loc[:,['volatile acidity', 'chlorides']]
df.loc[df['fixed acidity'] == 9.2, ['fixed acidity','volatile acidity', 'chlorides']]
df.loc[0:3, ['volatile acidity', 'chlorides']]
df['alcohol'].loc[0]
df.iloc[100]
df.iloc[100][1]
df.iloc[3:8, 0:3]
df.iloc[[71, 122, 400], [0, 2]]
df['new column'] = 'hi'
df.head()
df.iloc[0, df.columns.get_loc('new column')]= 'bye'
df.head()
df['new column'].loc[df['new column'].str.startswith('by')] = 'hello'
df.head()
import numpy as np
df['new column'].loc[df['new column'].str.startswith('hel')] = np.nan
df.head()
df.isna().sum()
pd.isna(df.head())
df.fillna(value='hey', inplace=True)
df.head()
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()
Reference
이 문제에 관하여(Pandas로 데이터 세트 읽기 및 조작(2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/orthymarjan/reading-and-manipulating-the-dataset-with-pandas-2-4b32텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)