パンダでtxtからデータをロードする


159

floatとstringのデータが混在する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]か?そして、どうすればヘッダーを定義できますか?

回答:


217

以下を使用できます。

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

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


ありがとう!テーブルの要素にアクセスするにはどうすればよいですか?
albus_c 2014

列を呼び出す場合は、列に「a」という名前を付けた場合はdata.aを使用します。
pietrovismara 14

1
または、単一の行を呼び出す場合は、data.a [1]を使用できます(この例では、列の最初の行を呼び出します)
pietrovismara

すごい!これですべてが修正されました
albus_c 2014


38

@Pietrovismaraの解決策は正しいですが、追加したいだけです。列名を追加するための個別の行を用意するのではなく、pd.read_csvからこれを行うことができます。

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


13

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

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

3
同様delim_whitespace=Trueに、'\s+'区切り文字の代わりに詳細な引数を指定できます
ALollz

8

あなたは次のようにすることができます:

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

(たとえば、df = pd.read_csv( 'F:\ Desktop \ ds \ text.txt'、delimiter = "\ t")


6

パンダの最新の変更に基づいて、read_csvを使用できます。read_tableは非推奨です。

import pandas as pd
pd.read_csv("file.txt", sep = "\t")

5

次のようにread_tableコマンドを使用してテキストファイルをインポートできます。

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

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


1

通常、最初にデータを確認するか、データをインポートしてdata.head()を実行します。列が\ tで区切られていることがわかったsep="\t"場合は、それ以外を指定する必要がありますsep = " "

import pandas as pd     
data = pd.read_csv('data.txt', sep=" ", header=None)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.