2016-12-22 5 views
2

나는 두 개의 csv 파일을 가지고 있는데 각각은 하나의 컬럼을 가지고있다. 해당 열은 PassengerId, Name, Sex, Age와 같은 정보를 공유합니다.판다 스의 박스 플롯

제목 (Mr, Mrs 등) 당 승객 분포의 그래프 상자 플롯을 그려 나가려고합니다. 오류가 발생했습니다. 줄거리를 그릴 수있는 오류를 전달하는 방법?

import csv as csv 
import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 
csv_file_object = csv.reader(open('test.csv', 'r')) 

header = next(csv_file_object) 
data=[] 

for row in csv_file_object: 
    data.append(row) 
data = np.array(data) 

csv_file_object1 = csv.reader(open('train.csv', 'r')) 
header1 = next(csv_file_object1) 
data1=[] 

for row in csv_file_object: 
    data1.append(row) 
data1 = np.array(data1) 


Mergerd_file = header.merge(header1, on='PassengerId') 

df = pd.DataFrame(Mergerd_file, index=['pAge', 'Tilte']) 

df.T.boxplot(vert=False) 
plt.subplots_adjust(left=0.25) 
plt.show() 

나는 오류이 오류

--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
<ipython-input-23-0d7fafc1fcf9> in <module>() 
    21 
    22 
---> 23 Mergerd_file = header.merge(header1, on='PassengerId') 
    24 
    25 df = pd.DataFrame(Mergerd_file, index=['pAge', 'Tilte']) 

AttributeError: 'list' object has no attribute 'merge' 
+0

: '_csv.reader' 오브젝트에는 나중에 'merge'속성이 없습니다. – doctorlove

+2

이것은 판다의 boxplot과 아무 관련이 없습니다. Btw, 팬더를 사용한다면 직접'pd.read_csv()'를 사용하여 데이터 프레임을 가져온 다음'pd.concat'을 사용하고'seaborn '을 사용하여 boxplot을 그릴 수 있습니다. 귀하의 질문에 대한 CSV 라이브러리를 사용하는 방법에 대한 자세한 내용은 모든 불필요한 부분을 제거하거나 별도의 질문을하고이 하나 명확하게 확인 – jrjc

+0

내 목표는 팬더 jrjc –

답변

1

난 당신이 read_csv 먼저, 다음 concat 모두 DataFrames과 마지막 boxplot을 만들 필요가 있다고 생각 :

노트 파이썬 2 tthat 이란게 불평하지 않지만, AttributeError "에 대해 불평 않습니다 단지에 대한
df1 = pd.read_csv('el/test.csv') 
print (df1.head()) 

df2 = pd.read_csv('el/train.csv') 
print (df2.head()) 

df = pd.concat([df1, df2]) 
df['Title'] = df.Name.str.extract(', (.*)\.', expand=False) 
print (df.head()) 

df[['Age','Title']].boxplot(vert=False, by='Title') 
plt.subplots_adjust(left=0.25) 
plt.show() 
+0

제목에 별도의 열이 없습니다. 그러나 이름 아래에 예를 들어 Braund가 있습니다. Mr. Owen Harris. Mr. –

+0

오케이. 그렇다면 Mrs.' Mrs','Miss'. 또 뭐야? – jezrael

+0

자, 시도해 볼 수도 있습니다.이 [답변] (http://stackoverflow.com/q/33573408/2901002) – jezrael

2

사용중인 코드는 파이썬 2이다, 그러나 당신은 (그리고 파이썬에서 권장 2.6+) 파이썬 3에서 파이썬 3를 실행하는 얻을 반복자 전진하는 적절한 방법은

header = next(csv_file_object1) 

는 또한, 파일이 텍스트 모드 'r'하지 'rb'에서 열려야 사용하는 것이다.

+0

감사합니다. 나는 감사 응답을 upvoted. –