私はpythonでElement Tree経由でXMLライクなファイルを解析し、そのコンテンツをpandasデータフレームに書き込んでいます。XMLで重複した子タグを確認して削除する
私は現在、以下の問題に直面しています。子タグの存在は、異なるタグのバリエーションになります。これは、hereというソリューションでは問題にはなりません。しかし、複雑な部分は、タグの中には子タグが重複しているものと、タグが重複しているものがあります。例えば、第1の製品タグは2つの(異なる)記事番号と2つの等しいproduct_types(複製)を有し、第2の製品タグは1つだけを有する。
<main>
<product>
<article_nr>B00024J7C6</article_nr>
<article_nr>44253</article_nr>
<product_type>x</product_type>
<product_type>x</product_type>
</product>
<product>
<article_nr>B00024J7C7</article_nr>
<product_type>y</product_type>
</product>
</main>
私は何をしたいのは、次のとおりです。NULL値を設定された第2 article_nrが存在しない場合 1)は、そうでない場合、値をとり、「PRODUCT_TYPE」と 2)のための重複を削除します。
これまでの私のコード:
def create_dataframe(data):
df = pd.DataFrame(columns=('article_nr', 'article_nr2', 'product_type', 'product_type2','product_type2'))
for i in range(len(data)):
obj = data.getchildren()[i].getchildren()
row = dict(itertools.izip(['article_nr', 'article_nr2', 'product_type', 'product_type2','product_type2'],
[obj[0].text, obj[1].text, obj[2].text, obj[3].text, obj[4].text]))
row_s = pd.Series(row)
row_s.name = i
df = df.append(row_s)
return df
2番目の「article_nr」と「PRODUCT_TYPE」の値がないため、これは、第二と第一の例と正常に動作しますが、明らかではありません。
出力は次のようになります。
article_nr article_nr product_type
B00024J7C6 44253 x
B00024J7C7 NULL y
は、あなたがこれまで持っているもののコードを追加し、所望の出力ていただけますか?ありがとう。 – alecxe
なぜ解析できないのですか?なぜ前にそれをする必要がありますか? – e4c5
私はあなたのヒントのためにコードと望ましい出力@alecxe – lomaga