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

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

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

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

Q&A

解決済

2回答

2796閲覧

read_csvでタブ区切りがうまくいかない

k0908

総合スコア102

Python

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

0グッド

0クリップ

投稿2018/08/10 06:29

import pandas as pd import numpy as np import matplotlib.pyplot as plt df = pd.read_csv(‘./user.csv', header=0,sep='\s\t+|,',engine='python') df

とコードを書いて実行すると、

0 0 100\tuser\t110\t120\t90\t80\t100 NaN NaN NaN NaN NaN NaN NaN

という感じで、一つのセルに一列のデータが全部入り、他のセルが全部NaNになってしまいます。

sep='\s\t+|,’

と書いたので、タブも全部区切ってくれる、と思っていたのですがなぜこのようになってしまうのでしょうか?

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

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

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

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

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

guest

回答2

0

そもそも

sep='\s\t+|,"

の場合

  • "空白文字の後にタブが数個ある場合"
  • ","

のどちらかがセパレータになりますので空白文字が1つしか無いばあはは区切ってくれないのではないでしょうか。

もともと 空白文字"\s" には タブ"\t" も含みますので単に

sep='\s+|," 『空白文字が1つ以上』または『,』

でよいのではないでしょうか

投稿2018/08/10 09:23

magichan

総合スコア15898

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

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

0

ベストアンサー

セパレータ(区切り文字)の設定に問題があります。

df = pd.read_csv(‘./user.csv', header=0,sep='\t',engine='python')

というように、セパレータにタブ('\t')を指定するか、

df = pd.read_table(‘./user.csv', header=0)

タブ区切りでファイルを読み込む read_tableを使ってみてください。

投稿2018/08/10 06:44

coco_bauer

総合スコア6915

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

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

k0908

2018/08/10 06:56

ありがとうございます。 df = pd.read_csv(‘./user.csv', header=0,sep='\t',engine='python') と書いて実行すると、 ParserError: Expected 1 fields in line 3, saw 7 とエラーが出て、 df = pd.read_table(‘./user.csv', header=0) と書いて実行すると、 ParserError: Error tokenizing data. C error: Expected 1 fields in line 3, saw 7 とエラーが出ました。 headerをつけたりしたのですが、うまくいかず・・・。
coco_bauer

2018/08/10 07:19

ひょっとして、‘./user.csv'というファイルは行ごとに項目数が異なるような内容でしょうか? "Expected 1 fields in line 3, saw 7"(項目数は1だと想定してましたが3行目には7項目もありました(^o^);;;)とのエラーメッセージが出ていますので。
coco_bauer

2018/08/10 07:20

差し支えなければ、user.csvファイルの内容(最初の数行分)を質問に追加してください。
k0908

2018/08/11 13:50

項目数が違うことがエラーの原因でした。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問