[解決済み] テキストファイルのインポート:ファイルから解析される列がない
質問
sys.stdinから入力を取得しようとしています。これはhadoopのためのmap reducerプログラムです。入力ファイルはtxt形式です。データセットのプレビューです。
196 242 3 881250949
186 302 3 891717742
22 377 1 878887116
244 51 2 880606923
166 346 1 886397596
298 474 4 884182806
115 265 2 881171488
253 465 5 891628467
305 451 3 886324817
6 86 3 883603013
62 257 2 879372434
286 1014 5 879781125
200 222 5 876042340
210 40 3 891035994
224 29 3 888104457
303 785 3 879485318
122 387 5 879270459
194 274 2 879539794
291 1042 4 874834944
試してみたコード
import sys
df = pd.read_csv(sys.stdin,error_bad_lines=False)
また
delimiter = \t, header=False,defining column name
何もうまくいかないようです。私が得ているエラーはこのエラーです。
[root@sandbox lab]# cat /root/lab/u.data | python /root/lab/mid-1-mapper.py |python /root/lab/mid-1-reducer.py
Traceback (most recent call last):
File "/root/lab/mid-1-reducer.py", line 8, in <module>
df = pd.read_csv(sys.stdin,delimiter='\t')
File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/pandas/io/parsers.py", line 645, in parser_f
return _read(filepath_or_buffer, kwds)
File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/pandas/io/parsers.py", line 388, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/pandas/io/parsers.py", line 729, in __init__
self._make_engine(self.engine)
File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/pandas/io/parsers.py", line 922, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/pandas/io/parsers.py", line 1389, in __init__
self._reader = _parser.TextReader(src, **kwds)
File "pandas/parser.pyx", line 538, in pandas.parser.TextReader.__cinit__ (pandas/parser.c:5896)
pandas.io.common.EmptyDataError: No columns to parse from file
しかし、これを直接pythonで試すと(hadoopではありません)、うまく動作します。
私はstackoverflowの投稿を調べようとしました、投稿の一つは、tryとexceptを提案しました。それを適用すると、空のファイルが残ります。 どなたか助けていただけませんか?ありがとうございます。
解決方法は?
try と except を使用すると、エラーが発生しても続行し、エラーに対処することができます。魔法のようにエラーを解決してくれるわけではありません。
read_csv
期待する
csv
ファイルであり、あなたの入力は明らかに違う。ドキュメントをざっと見てみると
delim_whitespace : boolean, デフォルト False
sep='+s' と設定するのと同じです。このオプションをTrueに設定すると、delimiterパラメータに何も渡さないようにします。
これが正論のような気がします。使用する
pandas.read_csv(filepath_or_buffer, delim_whitespace=True).
使用方法
delimiter='\t'
も、タブが展開(スペースに置き換わる)されない限り、動作するはずです。私たちにはよく分からないので
delim_whitespace
が良いようです。
それでもダメなら、そのままプリントアウトして
sys.stdin
を使用して、正しくテキストを渡したかどうかを確認します。
編集する 今見たら
cat /root/lab/u.data | python /root/lab/mid-1-mapper.py |python /root/lab/mid-1-reducer.py
これは意図的なものなのでしょうか、このように
mid-1-reducer.py
の出力を処理します。
mid-1-mapper.py
. ファイルの内容を処理したい場合
u.data
は、ファイルを読むことを考慮し
sys.stdin
.
関連
-
Python カメの描画コマンドとその例
-
PythonはWordの読み書きの変更操作を実装している
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】OSError: Pandas の csv でファイルからの初期化に失敗しました。
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandasのカラム名のリネーム
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python string splicing.join()とsplitting.split()の説明
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?