티스토리 뷰

반응형

Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.

Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.

 

아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.

Create Pandas DataFrame from a string

문자열에서 Pandas DataFrame 만들기

 문제 내용 

In order to test some functionality I would like to create a DataFrame from a string. Let's say my test data looks like:

어떤 기능을 테스트하기 위해 문자열에서 DataFrame을 만들고 싶습니다. 예를 들어, 제 테스트 데이터는 다음과 같습니다:
TESTDATA="""col1;col2;col3
1;4.4;99
2;4.5;200
3;4.7;65
4;3.2;140
"""

 

What is the simplest way to read that data into a Pandas DataFrame?

그 데이터를 Pandas DataFrame으로 읽는 가장 간단한 방법은 무엇입니까?

 

 

 

 높은 점수를 받은 Solution 

A simple way to do this is to use StringIO.StringIO (python2) or io.StringIO (python3) and pass that to the pandas.read_csv function. E.g:

그 데이터를 Pandas DataFrame으로 읽는 가장 간단한 방법은 StringIO.StringIO(python2) 또는 io.StringIO(python3)를 사용하여 pandas.read_csv 함수에 전달하는 것입니다. 예:
import sys
if sys.version_info[0] < 3: 
    from StringIO import StringIO
else:
    from io import StringIO

import pandas as pd

TESTDATA = StringIO("""col1;col2;col3
    1;4.4;99
    2;4.5;200
    3;4.7;65
    4;3.2;140
    """)

df = pd.read_csv(TESTDATA, sep=";")

 

 

 가장 최근 달린 Solution 

Object: Take string make dataframe.

객체: 문자열을 DataFrame으로 변환하기

 

Solution

해결책
def str2frame(estr, sep = ',', lineterm = '\n', set_header = True):
    dat = [x.split(sep) for x in estr.split(lineterm)][1:-1]
    df = pd.DataFrame(dat)
    if set_header:
        df = df.T.set_index(0, drop = True).T # flip, set ix, flip back
    return df

 

Example

estr = """
sym,date,strike,genus
APPLE,20MAY20,50.0,Malus
ORANGE,22JUL20,50.0,Rutaceae
"""

df = str2frame(estr)

print(df)
0     sym     date strike     genus
1   APPLE  20MAY20   50.0     Malus
2  ORANGE  22JUL20   50.0  Rutaceae

 

 

출처 : https://stackoverflow.com/questions/22604564/create-pandas-dataframe-from-a-string

반응형
댓글
공지사항
최근에 올라온 글