web-dev-qa-db-ja.com

パンダ付きのtxtからデータをロードする

フロートデータと文字列データが混在するtxtファイルをロードしています。各要素にアクセスできる配列にそれらを格納したいです。今私はやっている

import pandas as pd

data = pd.read_csv('output_list.txt', header = None)
print data

これが入力ファイルの構造です1 0 2000.0 70.2836942112 1347.28369421 /file_address.txt

これで、データは一意の列としてインポートされました。どうやってそれを分割して、異なる要素を別々に格納することができるのですか(それでdata[i,j]を呼び出せます)?そしてどのように私はヘッダを定義することができますか?

91
albus_c

あなたが使用することができます:

data = pd.read_csv('output_list.txt', sep=" ", header=None)
data.columns = ["a", "b", "c", "etc."]

引用符の間に空白を入れて、コードにsep=" "を追加します。そのため、パンダは値の間のスペースを検出して列でソートすることができます。データ列は列に名前を付けるためのものです。

123
pietrovismara

上記の回答に追加したいのですが、直接使用することができます

df = pd.read_fwf('output_list.txt')

fwfは固定幅フォーマット行を表します。

41

@ Pietrovismaraの解決策は正しいですが、私は追加したいと思います。列名を追加するための別の行を持つのではなく、pd.read_csvからこれを行うことが可能です。

df = pd.read_csv('output_list.txt', sep=" ", header=None, names=["a", "b", "c"])
22
Sam Perry

あなたはこれを使うことができます

import pandas as pd
dataset=pd.read_csv("filepath.txt",delimiter="\t")
17

あなたがすることができます:

import pandas as pd
df = pd.read_csv('file_location\filename.txt', delimiter = "\t")

(df = pd.read_csv( 'F:\ Desktop\ds\text.txt'、区切り文字= "\ t"など)

6
tulsi kumar

データにインデックスが割り当てられておらず、スペースがどうなっているのかわからない場合は、パンダにインデックスを割り当てさせて複数のスペースを探すことができます。

df = pd.read_csv('filename.txt', delimiter= '\s+', index_col=False)
3
bfree67

Read_tableコマンドを使用してテキストファイルをインポートできます。

import pandas as pd
df=pd.read_table('output_list.txt',header=None)

ロード後に前処理を行う必要があります

0
Kaustubh J