2017-10-19 1 views
1

으로 변환합니다.이 코드를 사용하여 팬더 DataFrame df의 각 행을 Json 문자열로 변환합니다. 문제는 인쇄가 None인데, df.head()이 데이터를 인쇄합니다.pandas DataFrame의 각 행을 별도의 Json 문자열

import pandas as pd 
import json 

df = pd.read_csv('mydataset.csv') 

for i in df.index: 
    print df.loc[i].to_json("row{}.json".format(i)) 
    if i==10: 
     break 

각 행을 Json 문자열 변수로 가져 와서 인쇄하는 방법은 무엇입니까? Json 문자열의 구조는 평범하고 배열이없고 문자열, 정수 및 부동 필드입니다.

+0

@ScottBoston :이 나를 위해 일덕분에이를 사용하여 JSON으로 저장 마지막 열이 내 코드가 작동하지 않기 때문에 문제는 JSON 문자열로 각 행을 변환하는 방법입니다. – Dinosaurius

답변

4

사용 apply :

df.apply(lambda x: x.to_json("row{}.json".format(x.name)), axis=1) 

만약하려는 경우에만 참조 출력 :

df.apply(lambda x: print(x.to_json()), axis=1) 

편집 :

를 사용하여 사용자 정의 기능 :

def f(x): 
    a = x.to_json() 
    print (a) 


df.apply(f, axis=1) 
+0

for 루프 내에서 각 행을 변환하고 싶습니다. 왜냐하면'df' 크기가 커서 for 루프 내에서 어떤 처리를해야하기 때문입니다. – Dinosaurius

+0

df.iterrows()에서'for 행 : data = row.to_json()'을 실행하면 작동하지 않습니다. – Dinosaurius

+0

마지막 편집과 같은 사용자 지정 기능? – jezrael

2

.to_json(fname) 함수는 데이터를 직접 json 파일에 쓰고 아무 것도 반환하지 않으므로 인쇄 결과 아무 것도 반환하지 않지만 파일 시스템에는 실제 파일이 있습니다.


업데이트 : 당신은 파이썬에서 변수로 JSON 문자열을 저장하려면, 다음 기능 to_json()에 파일 이름 인수를 지정하지 마십시오. 다음과 같이 할 수 있습니다 : a = df.iloc[0].to_json() 문자열은 변수 a에 저장됩니다. 행에 의해 프로세스를위한 매개 변수 axis=1

+1

그러면이 Json 문자열을 어떻게 변수에 넣을 수 있습니까? 이 경우'to_json'을 대신 사용하고 싶습니다. – Dinosaurius

+1

@Dinosaurius'to_json()'함수에서 파일 이름 인수를 지정하지 않으면, 파이썬에서 변수로 저장할 수 있습니다. –

0
df.assign(ln_A = lambda x: x.to_json())) 
관련 문제