본문 바로가기
DataScience/Python

pd.read_csv(thousands= ','), 차원이 다른 데이터를 차트로, 데이터프레임에서 데이터값의 콤마제거

by leopard4 2022. 11. 29.

해당 데이터 프레임에서

0세부터 100세 까지 나이대 별로 몇명이 있는지 시각화를 한다면

df2 = df.loc[ df["행정구역"].str.contains("삼청동"), "2019년07월_계_0세" : ].values   # values 로 컬럼을 제외한 값만 가져온다.
[in]df2

[out]array([[ 7,  9, 13, 12, 11, 11,  9, 11, 20, 18, 18, 23, 23, 19, 17, 16,
        20, 25, 25, 27, 22, 35, 34, 29, 42, 38, 38, 32, 31, 36, 53, 32,
        29, 42, 45, 29, 45, 50, 45, 52, 43, 36, 34, 29, 35, 33, 41, 37,
        46, 48, 44, 47, 33, 46, 41, 40, 44, 57, 47, 49, 52, 45, 45, 44,
        49, 35, 40, 37, 18, 28, 34, 40, 29, 24, 27, 25, 27, 36, 24, 27,
        17, 18, 16, 19, 16, 12, 14, 10, 11,  9,  1,  6,  6,  2,  3,  1,
         1,  2,  1,  1,  7]], dtype=int64)
x = np.arange(0, 100+1)

여기서 바로 다음과 같이 차트를 그리면

plt.plot(x ,df2)
plt.show()

 

두가지 문제가 발생한다

1. 차원의 다름

2. 숫자가 아닌 문자열이라는 에러

 

그래서 describe를 해보면

df.describe()

보다시피 99세 만 숫자로 되있는것이 확인된다.

 

첫번째 문제는 간단히 df2 = df2.reshape(101, ) 함수를 이용하면되는것이고.

두번째 문제는 df 데이터 값에 콤마가 들어가있기때문에 

pd.read_csv를 할때 thousands= ',' 를 해주면 해결된다.