플레이어 이름과 함께 basketball-reference에서 가져온 DataFrame이 있습니다. 아래의 코드는 DataFrame을 작성한 방법입니다. 그것은 5 칼럼의 플레이어 이름을 가지고 있지만, 각 이름은 또한 플레이어의 위치를 가지고 있습니다.pandas DataFrame의 열이이 루프에서 작동하지 않는 이유는 무엇입니까?
url = "http://www.basketball-reference.com/awards/all_league.html"
dframe_list = pd.io.html.read_html(url)
df = dframe_list[0]
df.drop(df.columns[[0,1,2]], inplace=True, axis=1)
column_names = ['name1', 'name2', 'name3', 'name4', 'name5']
df.columns = column_names
df = df[df.name1.notnull()]
위치를 분리하려고합니다. 그래서 각각의 이름 열에 대한 DataFrame하기 위해 계획했던 수행합니다 나는 내가 루프
column_names = ['name1', 'name2', 'name3', 'name4', 'name5']
for column in column_names:
column = pd.DataFrame(df.column.str.split().tolist()).ix[:,0:1]
column[0] = column[0] + " " + column[1]
column.drop(column.columns[[1]], inplace=True, axis=1)
column.columns = column
이 할 것이라고 생각 다섯 개의 열을 가지고 있기 때문에
name1 = pd.DataFrame(df.name1.str.split().tolist()).ix[:,0:1]
name1[0] = name1[0] + " " + name1[1]
name1.drop(name1.columns[[1]], inplace=True, axis=1)
을 그리고 나는 모든 가입 것 이 DataFrames는 다시 함께합니다.
df_NBA = [name1, name2, name3, name4, name5]
df_NBA = pd.concat(df_NBA, axis=1)
나는 파이썬에 새로 온 사람, 그래서 내가 꽤 번거로운 방식으로이 일을 그리고 난이 더 빨리 할 수있는 방법으로 제안을 사랑하는 것입니다 확신합니다. 하지만 그것은 잘 작동 개별 열에서 코드를 실행하면 내 주요 질문은,하지만 루프를 실행할 때이 오류가 발생하는 경우 :
AttributeError: 'DataFrame' object has no attribute 'column'
루프 df.column.str
의 일부가 어떤 문제를 일으키는 것으로 보인다 ? 나는 열거 형 브래킷을 사용하여 목록을 둘러 보았습니다. (때때로 나는 때때로 DataFrame 열을 괄호로 묶는 것이고 때로는 .column이지만 더 큰 문제입니다) 및 기타 임의적 인 것들을 이해하지 못합니다. 나는 Jupyter 노트북에 BrenBarn의 제안 @
df.apply(lambda c: c.str[:-2])
다음 팝을하려고하면
는 :
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
if __name__ == '__main__':
가 DataFrame 보면 내가 제대로이 문서를 이해한다면, 아무것도 실제로 변경하지 않고있다 메서드는 편집 된 DataFrame 복사본을 만듭니다. 그러나 나중에 실제 데이터 프레임이 변경되지 않도록 가져 오는 임시 복사본입니다.
만약 당신이'df [column]'을 쓰면 그것도 작동하지 않는다는 말입니까? – BrenBarn
'df.column'은'df [column]'이 아니라'df [ 'column']'에 해당합니다. 따라서 column이 변수 일 때는 사용할 수 없습니다. – ayhan
@BrenBarn, 예,'df [column]','df [ 'column']'을 사용하면 작동하지 않습니다. @ayhan이 말하는 것 같아요. 그래서 대답이 있습니까? – vino88