2016-04-08 16 views
0

Pandalar kullanarak Python'da bir web günlük metin dosyası içe aktarıyorum. Python başlıkları okuyor, ancak "Fields:" metnini bir başlık olarak kullanmış ve daha sonra başka bir boş sütun (NaN'ler) eklemiştir. Sütun başlığı olarak kullanılan bu metni nasıl durdurabilirim?Python kullanarak sütun başlığı olarak kullanılan metinler nasıl atlanır

Yazılım: Microsoft Internet Information Services 7.5

Versiyon: 1.0

Tarihi: 2014- İşte

arr = pd.read_table("path", skiprows=3, delim_whitespace=True,  na_values=True) 

dosyanın başlangıcıdır: Burada

benim kodudur 08-01 00:00:25

Alanları: date time

2014-08-01 00:00:25 ...

Sonucu 'Alanlar' bir sütun başlığı ve sütunun 'zaman' için oluşturulan ediliyor NaN değerlerinin tam bir sütunu olarak kullanılıyor olmasıdır.

cevap

1

Bunu iki kere read_table arayarak yapabilirsiniz isteyebilirsiniz düşünüyorum. Zaten sütunları (örn. date ve time) adlarını biliyorsanız

# reads the forth line into 1x1 df being a string, 
# then splits it and skips the first field: 
col_names = pd.read_table('path', skiprows=3, nrows=1, header=None).iloc[0,0].split()[1:] 
# reads the actual data: 
df = pd.read_table('path', sep=' ', skiprows=4, names=col_names) 

o zaman bile basittir:

df = pd.read_table('path', sep=' ', skiprows=4, names = ['date', 'time']) 
1

Sana skiprows = 4 ve header = None

+0

sayesinde, geçici bir çözüm olarak ve kullanma sütun başlıklarını geri eklenir yaptım Bu qanda: http://stackoverflow.com/questions/17018638/assigning-column-names-from-a-list-to-a-table Ancak, kesinlikle yanlış bir metni okuması yerine daha iyi bir yol var – W4K1NG

+0

Oh yea, Sorunu anlamadım. sadece dosyayı düzenlemeli ve ''Fields:'' '' '' ile değiştirmelisiniz (bunu python betikinizde 'replace' ile yapabilirsiniz) – maxymoo

İlgili konular