2016-11-17 4 views
-1

저는 꽤 오랫동안 matplotlib을 사용해 왔지만 훌륭합니다. 그러나 팬더로 전환하고 싶습니다. 처음 시도했을 때 좋았습니다.팬더를 사용하여 CSV 파일 구문 분석

내 데이터 세트는 다음과 같습니다

sam,123,184,2.6,543 
winter,124,284,2.6,541 
summer,178,384,2.6,542 
summer,165,484,2.6,544 
winter,178,584,2.6,545 
sam,112,684,2.6,546 
zack,145,784,2.6,547 
mike,110,984,2.6,548 
etc..... 

나는 이름 마이크 아무것도에 대한 CSV를 검색하고 자신의 목록을 작성 먼저합니다. 이제이 목록을 통해 예를 들어 sam[3] + winter[4] 또는 sam[1]/10을 추가하여 수학을 수행 할 수 있기를 원합니다. 마지막 부분은 서로에 대해 열을 그릴 것입니다. 내가 열 머리글이있는 경우이 페이지

http://pandas.pydata.org/pandas-docs/stable/io.html#io-read-csv-table 

내가 볼 수있는 유일한 방법을 통해가는

그러나, 내가 어떤 헤더를하지 않아도된다. 나는 단지 내가 원하는 가치의 행에서 그 위치를 안다.

그래서 제 질문은 :

  1. 가 어떻게 각 행에 대해 목록의 무리를 만들려면 어떻게해야합니까 (샘, 겨울, 여름) 내 CSV 데이터 포인트의 수백만이있는 경우
  2. 이 방법 효율적인가요?
  3. 팬더 데이터 프레임을 플로팅 할 때 matplotlib 플로팅을 사용할 수 있습니까?

예 :

fig1 = plt.figure(figsize= (10,10)) 
ax = fig1.add_subplot(211) 
ax.plot(mike[1], winter[3], label='Mike vs Winter speed', color = 'red') 

답변

1

당신은 헤더가없는 CSV를 읽을 수 있습니다

data=pd.read_csv(filepath, header=None) 

열은 0 선택 및 필터링에서 시작하는 번호가됩니다

all_summers = data[data[0]=='summer'] 

일부 작업 그룹화를 수행하려는 경우 첫 번째 열, 그것은 다음과 같이 표시됩니다

data.groupby(0).sum() 
data.groupby(0).count() 
... 

행을 선택 그룹화 한 후 :

sums = data.groupby(0).sum() 
sums.loc['sam'] 

플로팅 예 :

sums.plot() 
import matplotlib.pyplot as plt 
plt.show() 

를 자세한 내용은 플로팅에 대해, 참조 : http://pandas.pydata.org/pandas-docs/version/0.18.1/visualization.html

+0

다소 혼란 스럽습니다. 여기에 첫 번째 열 값을 기반으로 목록을 만드는 방법이 나와 있습니다. 예를 들어 여름에 모두 들어있는 목록일까요? –

+0

당신은이'data [data [0] == 'summer']와 같이'summer's를 모두 얻습니다. – burhan

+0

여기서 피곤한 것은 제가 지쳤던 것입니다 : Sam = data [data [0] == 'sam' ] 인쇄 (샘), 내가 가진 모든 것은 10 개의 필드를 보았고, 라인 15를 건너 뛰는 것을 보았다. –

-1
df = pd.read_csv(filepath, header=None) 
mike = df[df[0]=='mike'].values.tolist() 
winter = df[df[0]=='winter'].values.tolist() 

그러면 원하는대로 목록을 그릴 수 있습니다

fig1 = plt.figure(figsize= (10,10)) 

ax = fig1.add_subplot(211) 

ax.plot(mike, winter, label='Mike vs Winter speed', color = 'red') 
+0

또한 예상 된 10 개의 필드가 15 행 3을 건너 뛰는 것을 보았습니다. –

+0

목록 길이가 다르기 때문에 가능성이 높습니다. ''len (winter)''과''len (mike)''을 비교해보십시오 –

+0

예 그들은 다릅니다. 각 쉼표 뒤에 공백이 있기 때문에 진정한 CSV 파일이없는 것 같습니다. –