前提・実現したいこと
サイトから引っ張ってきたテーブルをある条件になったら、行を削除したいのですが、うまくいかず困っています。
日によって、テーブルが増えたり減ったりするのですが、大体3個あります。テーブルの形は以下のようになっています。テーブルの最後3列いらないデータがありますが、これを削除したいです。
Python
1# 項目1 項目2 項目3 項目4 2# 項目5 項目6 項目7 項目8 3#0 AAA1 AAA2 AAA3 AAA4 4#1 AAA5 AAA6 AAA7 AAA8 5#2 BBB1 BBB2 BBB3 BBB4 6#3 BBB5 BBB6 BBB7 BBB8 7#4 AAA1 AAA2 AAA3 AAA4 8#5 AAA5 AAA6 AAA7 AAA8 9#6 CCC1 CCC2 CCC3 CCC4 <--消す 10#7 CCC5 CCC6 CCC6 CCC7 <--消す 11#8 CCC8 CCC9 CCC10 CCC11 <--消す
最終的にはExcelにexportするのですが、exportする前に見やすくするため、偶数と奇数の行を分けて一つの行にしています。
Python
1 奇数行 2df_tmp1 = df.iloc[::2].reset_index(drop=True) 3df_tmp1.columns = df.columns.get_level_values(0) 4 5偶数行 6df_tmp2 = df.iloc[1::2].reset_index(drop=True) 7df_tmp2.columns = df.columns.get_level_values(1)
これだと綺麗に項目が一列になるのですが、奇数と偶数項目に分けているので以下のようになってしまい、ここで列を消してしまうと必要なデータも消えてしまい、困っています。
Python
1項目1 項目2 項目3 項目4 項目5 項目6 項目7 項目8 、 2CCC8 CCC9 CCC10 CCC11 AAA1 AAA2 AAA3 AAA4
最初の項目が2段ある状態でCCCを消したいのですが、消し方分かりますでしょうか?
発生している問題・エラーメッセージ
試したこと1 エラーメッセージ:ValueError: cannot join with no overlapping index names 試したこと2 エラーメッセージ:KeyError: '合計'
該当のソースコード
Python
1df = pd.io.html.read_html(filename, encoding='Shift JIS', attrs={'class':'list2'}) 2df = pd.concat(df) 3 4df = pd.DataFrame(df)
試したこと
Python
1合計というtextは最後の列にあるので、全て消したいので、以下のようなコードを試しました 2df = df[df['ファンドコード'] != '合計'] 3 4これも試しましたが、だめでした。 5remove = df.loc['合計'] 6df.drop(remove.index) 7
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー