2017-02-01 2 views
-2

팬 데이터 데이터 프레임으로 구성된 데이터 세트가 있습니다.첫 번째 행을 건너 뛰면서 팬더 데이터 프레임을 반복합니다.

여기에 데이터의 작은 예입니다 :

 x142_2012 x126_2012 x156_2012 x167_2012  x1_2012 x243_2012 
0  690.842629 0.005029 51.600000 5.454545 43.000000 27.700000 
1  4247.485437 5.062739 95.400000 54.655959 100.000000 15.700000 
2  5583.616160  NaN 84.900000 15.228027 100.000000 31.600000 
3    NaN  NaN 100.000000  NaN 59.328910  NaN 
4 39666.369210 34.335120 100.000000 86.434425 100.000000 50.000000 
5  5531.776299  NaN 47.800000 16.937210 37.000000 34.100000 
6 13525.616220 14.674017 97.900000 58.000000 90.875440 10.500000 
7  7465.145864 3.196932 85.417850 29.954302 86.270751 14.872018 
8 14357.411590 12.530952 98.600000 55.800000 99.800000 37.400000 
9  3565.517575 7.142042 99.700000 37.500000 100.000000 10.700000 
10   NaN  NaN 98.100000 74.000000 90.875440  NaN 

내가 개별적으로, 각각 다른 변수와 변수 x142_2012 비교 산점도의 무리를 구축하고자합니다. 따라서 첫 번째 항목을 건너 뛰면서 데이터 프레임을 반복하고 싶습니다. I는 먼저 x/x 인이

import pandas as pd 
import matplotlib.pyplot as plt 
import seaborn as sns 

for variable in subset[1:]: 
    plt.figure() 
    scatterplot = sns.regplot(x="x142_2012", y=variable, fit_reg=False, data=subset) 

대신 5 산점도 (x/y1, x/y2, x/y3, x/y4, x/y5)를 출력 그것을 출력 6 산점도를 시도했다.

for variable in subset: 
    if variable == "x142_2012": 
     continue 
    plt.figure() 
    scatterplot = sns.regplot(x="x142_2012", y=variable, fit_reg=False, data=subset) 

을하지만 나는 그것이 매우 우아 찾을 수 없습니다 :

나는이 함께 문제를 해결 얻고있다. 나는 Efficient way to do pandas operation and skip row을보고 for variable in subset[x].idx[1:]을 시도했지만 그것은 AttributeError: 'Series' object has no attribute 'idx'을 제공합니다.

더 좋은 방법이 있나요?

+0

을 사용합니다. 구상 된 구조를 가지고있는 Dataframe의 인쇄물을 제공하고 이것이'x','y1'과 어떻게 관련되어 있는지 명확히 진술 할 수 있습니까? – ImportanceOfBeingErnest

+0

@ImportanceOfBeingErnest 저는 세계 은행의 데이터 세트로 작업하고 있습니다. 더 많은 정보를 포함하도록 게시물을 업데이트했습니다. – Greg

답변

2

대신 subset[1:], 나는 문제가 당신의 dataframe이 어떻게 보이는지 이해하기 subset.columns[1:]

1

subset[1:]은 첫 번째 을 제외한 모두를 선택하므로 결과 DataFrame에도 여섯 개의 열이 있습니다.

당신이 대신 할 수있는 것은 dataframe의 열을 반복 (첫 번째를 생략)하는 것입니다

import pandas as pd 
import numpy as np 
import seaborn as sns 
import matplotlib.pyplot as plt 

# generate some data 
a = np.random.rand(10,6) 
a[:,0]= np.arange(10) 
df = pd.DataFrame(a, columns=[l for l in "xabcde"]) 
#print df 

#plot 
for col in df.columns[1:]: 
    plt.figure() 
    scatterplot = sns.regplot(x="x", y=col, fit_reg=False, data=df) 

plt.show() 
관련 문제