質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1880閲覧

PythonでExcelデータを読み込み重複した行をCSVやExcelデータとして出力したい。

Yooshi

総合スコア4

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/11/21 23:00

編集2020/11/22 01:14

前提・実現したいこと

PythonでExcelデータを読み込み重複した行をCSVへ各列に分けて出力したい。

Excelデータ(7列のデータが5万行程あります。)を読み込み、
特定の列のデータが重複している場合、その行を抽出しCSVやExcelに書き出したいです。
Excelデータは7列あり2行目のデータを抽出します。
duplicatedを使用し抽出したものを無理矢理CSVへ出力しました。
※20201121 19:10修正
修正前:duplicatedを使用し抽出すると「...」と省略されたため、表示数を適当に増やし可視化したものを無理矢理CSVへ出力しました。

発生している問題

各行が1つの列に入ってしまい、再度処理が必要でした。
今回は重複は30個程度だったので手作業で何とかなりましたが、重複が増えた場合には手作業では厳しいです。
そこで、抽出した行を各列に分けてCSVやExcelファイルへ再利用しやすい形で保存する方法を教えてください。

試したこと

下記を使用し表示数を増やし可視化したものを無理矢理CSVへ出力した。
pd.set_option('display.max_rows', 500000)
pd.set_option('display.max_columns', 500000)

該当のソースコード

print(pd.get_option("display.max_rows")) print(pd.get_option("display.max_columns")) #新しく設定する最大表示数 pd.set_option('display.max_rows', 500000) pd.set_option('display.max_columns', 500000) ######################### # Read EXCEL df = pd.read_excel('ファイル名') ################## # Check Dup df=df[df.duplicated(subset='対象列名')] print(df) ########## #csvへ出力 with open('file.csv', 'w') as f: print(df, file=f)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Daregada

2020/11/22 00:29

> duplicatedを使用し抽出すると「...」と省略されたため、 それは画面に表示されるときだけですよ。
guest

回答1

0

ベストアンサー

dfの画面出力をファイルに書き込んではいけません。

質問者が悩んだように一部が「...」で省略されることもありますし、カンマ区切りにならないのでCSV形式として読めなくなります。1列にすべて格納されたのは、画面出力時に複数の空白で区切られるからです。

CSVファイルへの出力には、pandasのto_csvを使ってください。

Diff

1-with open('file.csv', 'w') as f: 2- print(df, file=f) 3+df.to_csv('file.csv', index=None)

投稿2020/11/22 00:41

Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yooshi

2020/11/22 01:00

Daregada様ご回答ありがとうございます。to_csv を覚えることができました。助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問