私はパンダを使用してxmlからデータを取得しようとしています。現在、私は "作業中の"コードを持っています。パンダを使用してxmlからデータを取得
import pandas as pd
import requests
from bs4 import BeautifulSoup
url = "http://degra.wi.pb.edu.pl/rozklady/webservices.php?"
response = requests.get(url).content
soup = BeautifulSoup(response)
tables = soup.find_all('tabela_rozklad')
tags = ['dzien', 'godz', 'ilosc', 'tyg', 'id_naucz', 'id_sala',
'id_prz', 'rodz', 'grupa', 'id_st', 'sem', 'id_spec']
df = pd.DataFrame()
for table in tables:
all = map(lambda x: table.find(x).text, tags)
df = df.append([all])
df.columns = tags
a = df[(df.sem == "1")]
a = a[(a.id_spec == "0")]
a = a[(a.dzien == "1")]
print(a)
だから私は "=のDF [(df.sem == "1")]" のエラーが取得しています:、
ファイル "パンダの\のindex.pyx"、行139 pandas.index.IndexEngine.get_loc(pandas \ index.c:4443)
pandas.index.IndexEngine.get_loc(pandas \ index.c:4289)のファイル "pandas \ index.pyx"
pandas.hashtable.PyObjectHashTable.get_item(パンダの\のhashtable.c:13733)でのファイル "パンダ\ SRC \ hashtable_class_helper.pxi"、行732、
pandas.hashtable.PyObjectHashTable.get_item(パンダの\のhashtable.c:13687)でのファイル "パンダ\ SRC \ hashtable_class_helper.pxi"、行740、
私は人々がDFを使用することをお勧め見て、他のスタックの質問を読んで.LOCので、私は今、コードのコンパイル
a = df.loc[(df.sem == "1")]
にこのラインをmodyfiedが、この行が存在しないように結果が表示されます。問題は "sem"タグだけであることに言及する必要があります。残りは完全に機能しますが、残念ながらこのタグを正確に使用する必要があります。誰かが私がこのエラーの原因とその解決方法を説明できるなら、私は感謝します。
これは本当によく動作しますが、あなたは、なぜ私のコードを説明することができますされていない? – Wesspe
受け付けていただきありがとうございます。だからコードワードに問題があります。あなたの列が 'sum'、' mean'、 'count'、' sem'の場合、 'df.sum'、' df.count'、 'df.mean'、 'df.sem'はすべてがpandas function [' sum'](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.sum.html)、['mean' ](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.mean.html)...だから、この列では 'df ['sum']'、 'df [ 'mean'] '' ... 'df ['sem']'。 – jezrael
docs [here](http://pandas.pydata.org/pandas-docs/stable/indexing.html#attribute-access)を参照してください。 - 'warning'をチェックしてください - 既存のものと競合する場合、属性は利用できませんメソッド名、例s.minは許可されていません。 – jezrael