• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

Library 질문입니다.

20.09.09 21:30 작성 조회수 136

1

안녕하세요

Library 다음에 method 지정하는데, melt는 pd.에 나오고,  pivot은 df.에 따르는데,  어떤 규칙이 있나요. logic에서도 마찬가지여서, 작성하면서 혼돈이 많이 되네요. 아님 그냥 외워야 되는건지요. 

그리고 별개의 질문인데요. data 읽어  올 때  list of dictionary 하고 list of list  개념 설명 부탁합니다.  어떤 차이점이 있고 어떤 방식으로 활용해야 되는지요 

답변 3

·

답변을 작성해보세요.

1

답변 고맙습니다.  DATA 불러오기 문제가 있어서 설명 부탁 할께요. 

우선 회사에서 구글 사용해서 colab를 사용하고요. Spreadsheet를 불러와서 판다스 활용합니다. 

그래서 gsspread(https://gspread.readthedocs.io/en/latest/api.html)설명서를 참고 하는데요. 

그 부분에서 get_all_values와 가get_all_records 차이를 파악하다, 2번째 질문을 하였습니다. 

현재 데이타 볼러올 때의 문제점은

Spreadsheet 아래 날짜를 읽어올 때, datatype이 int64로 바뀌고요

get_all_values(value_render_option='UNFORMATTED_VALUE')

<google-sheets-html-origin></google-sheets-html-origin>

<google-sheets-html-origin></google-sheets-html-origin>

일자 출금
2019. 10. 31 0
2019. 10. 31 1,000
2019. 10. 31 18,000
2019. 10. 31 57,450

그래서 다시 datetime으로 변경하면 df['일자'] = pd.to_datetime(df['일자'])

전혀 다른 날짜(시간포함해서)가 아래와 같이 나옵닙니다.

다른 숫자나 text는 int,object로 불러와서 이상 없이 보이는데, date는 sheet 자체에서 어떤 날짜 포맷으로 저장 문제인지 아님 api 자체내에서 불러올때 type를 지정 해야 되는 문제인지 몰라서요. 설명 해 주시면 감사하겠습니다. 

1

안녕하세요.

1.

데이터프레임을 그대로 사용한다면 df.메소드명으로 사용할 수 있습니다.

하지만 concat의 경우 여러 데이터프레임을 지정해 주어야 하기 때문에  pd로 지정합니다.

반면에 merge 는 pd.으로도 df.으로도 사용할 수 있는데 데이터프레임이 그 기준이 되느냐로 이해하시면 될것 같습니다.

2. 

 list of dictionary  라면 컬럼명을 따로 지정해 주지 않아도 됩니다.

d = {'col1': [1, 2], 'col2': [3, 4]}
>>> df = pd.DataFrame(data=d)
>>> df
   col1  col2
0     1     3
1     2     4

 list of list 라면 컬럼명을 따로 지정해 주셔야 합니다.

df2 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
...                    columns=['a', 'b', 'c'])
>>> df2
   a  b  c
0  1  2  3
1  4  5  6
2  7  8  9

공식문서를 링크합니다.

[pandas.DataFrame — pandas 1.1.2 documentation](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html)

0

여기에 질문을 주셨었네요. 새로 올려주신 질문에 답변해 드렸습니다.

일자의 타입을 int가 아니라 str 으로 변경하고 datetime 으로 변환하면 해결됩니다.