Pandalar ile txt'den veri yükle


160

Float ve string verilerinin bir karışımını içeren bir txt dosyası yüklüyorum. Onları her öğeye erişebileceğim bir dizide saklamak istiyorum. Şimdi yapıyorum

import pandas as pd

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

Bu giriş dosyasının yapısı şöyledir: 1 0 2000.0 70.2836942112 1347.28369421 /file_address.txt.

Şimdi veriler benzersiz bir sütun olarak içe aktarılıyor. Bunu nasıl bölebilirim, böylece farklı öğeleri ayrı ayrı saklamak (böylece arayabilirim data[i,j])? Üstbilgiyi nasıl tanımlayabilirim?

Yanıtlar:


218

Kullanabilirsiniz:

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

sep=" "Tırnaklar arasında boşluk bırakarak kodunuzu ekleyin . Böylece pandalar değerler arasındaki boşlukları algılayabilir ve sütunlar halinde sıralayabilir. Veri sütunları sütunlarınızı adlandırmak içindir.


Teşekkürler! Tablonun bir öğesine nasıl erişebilirim?
albus_c

bir sütunu çağırmak istiyorsanız data.a sütununu "a" olarak adlandırdıysanız kullanın.
pietrovismara

1
Veya tek bir satırı aramak istiyorsanız data.a [1] kullanabilirsiniz (bu örnek sütunun ilk satırını çağırır)
pietrovismara

Harika! Her şeyi düzeltti
albus_c

88

Yukarıdaki cevaplara eklemek istiyorum, doğrudan kullanabilirsiniz

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

fwf sabit genişlikte biçimlendirilmiş satırları ifade eder.


38

@ Pietrovismara'nın çözümü doğrudur, ancak eklemek istiyorum: Sütun adları eklemek için ayrı bir satır kullanmak yerine, bunu pd.read_csv'den yapmak mümkündür.

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


13

Verilere atanmış bir dizin yoksa ve aralığın ne olduğundan emin değilseniz, pandaların bir dizin atamasına ve birden çok boşluk aramasına izin vermek için kullanabilirsiniz.

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

3
Aynı şekilde delim_whitespace=True, '\s+'sınırlayıcı yerine daha ayrıntılı bir argüman belirtebilirsiniz
ALollz

8

Şu şekilde yapabilirsiniz:

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

(örneğin, df = pd.read_csv ('F: \ Masaüstü \ ds \ text.txt', ayırıcı = "\ t")


6

Pandalardaki son değişikliklere dayanarak şunu kullanabilirsiniz: read_csv, read_table kullanımdan kaldırılmıştır:

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

5

Metin dosyasını read_table komutunu kullanarak şu şekilde içe aktarabilirsiniz:

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

Yüklemeden sonra önişlemin yapılması gerekecektir


1

Eğer kolonlar o zaman belirtmelidir \ t ayrılmış olduğunu görürsem,) genellikle ilk verilere bakmak ya da sadece ithalat ve data.head (yapmaya çalışacağım sep="\t"aksi takdirde sep = " ".

import pandas as pd     
data = pd.read_csv('data.txt', sep=" ", header=None)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.