我如何將第一行的文本文件轉換爲Python中的列表?我想在轉換成列表時逃避NaNs。如何將文本文件的第一行轉換爲python轉義列表中的列表?
import csv
with open ('data.txt', 'r') as f:
first_row = [column[0] for column in csv.reader(f,delimiter='\t')]
print (first_row)
我如何將第一行的文本文件轉換爲Python中的列表?我想在轉換成列表時逃避NaNs。如何將文本文件的第一行轉換爲python轉義列表中的列表?
import csv
with open ('data.txt', 'r') as f:
first_row = [column[0] for column in csv.reader(f,delimiter='\t')]
print (first_row)
使用戶更容易對自己,用pandas:
import pandas
df = pandas.read_csv("data.txt")
如果您需要明確地告訴熊貓一個特定的值是NaN
,只是把它傳遞給讀者
df = pandas.read_csv("data.txt", na_values=["NAN"])
或者如果你想跳過有問題的線路
df = pandas.read_csv("data.txt", error_bad_lines=False)
要獲得第1行:
row1 = df.irow(0)
要獲得第1列:
col1 = df.icol(0)
熊貓是完美的,你打敗了我,+1,但你不需要指定分隔符,熊貓'read_csv'「嗅探」文件的分隔符是什麼! –
@RyanSaxe好吧,更新反映(加我拼寫錯誤「\ t」開機:P) –
@Jeff Tratner謝謝我,我接受了你的答案。那我該如何提取只有第一行或第一列? – lisa
如果你有確定的確定方式是什麼構成了電池可以使用字符串比較,而忽略那些無效值值。
如果你的目的是要忽略的是浮動 你可以這樣做以下Python不認爲這些值:
cell = <cell_value>
try:
f = float(cell)
# store f somewhere
except ValueError:
# ignore cell, or may be log this
pass
這爲我工作(將所有細胞在行或行成一列表):
import csv
with open ('data.txt', 'r') as f:
for row in csv.reader(f,delimiter='\t'):
print row # prints a list of entries for current row.
csv.reader()
返回產生每次迭代(即線)列的陣列的迭代器。
簡單地說,這是足以讓你的data.txt的第一行作爲一個列表:
import csv
with open ('data.txt') as f:
first_row = csv.reader(f, delimiter='\t')
看樣子你也想列表中的元素轉換爲十進制類型,它可以可以使用map(...)
和float(...)
來完成。
例如爲:
first_row = map(float, first_row)
如果列表中包含文本「南」,float()
將其轉換爲特殊值nan
沒有太多的干預。
例如爲:
>>> float("NaN")
nan
提供一些這方面的更多背景 - 什麼樣的輸入數據的? 「逃脫NaNs」是什麼意思? –
@lisa,你應該恢復你的編輯並提出一個新的問題。現在沒有任何下面的答案有任何上下文。 – dansalmo
似乎lisa創建了一個新的襪子傀儡帳戶http://stackoverflow.com/questions/17057641/creating-lists-from-text-file-using-pandas-in-python。 – dansalmo