[英]python- How do i remove a rows from pandas dataframe by 2 columns value (The values should be a combination of 2 strings )?
[英]Python- How to Remove Columns from a File
我想從文件中刪除第一列。 該文件包含3列,各列之間用空格隔開,並且這些列具有以下標題:X','Displacement'和'Force'(請參見圖片)。
我提出了以下代碼,但令我失望的是,它不起作用!
f = open("datafile.txt", 'w')
for line in f:
line = line.split()
del x[0]
f.close()
任何幫助深表感謝 ! 易山
首先,您正在嘗試從文件中讀取(通過遍歷文件內容)以進行寫入。 這將給您一個IOError
。
其次,不存在名為x
變量(您尚未在腳本中聲明/設置一個)。 這將生成一個NameError
。
第三,也是最后,一旦(正確)讀取和編輯文件中的列,您將需要將數據寫回到文件中。
為了避免將一個(可能很大的)文件一次全部加載到內存中,從一個文件(逐行)讀取並同時寫入一個新文件可能是一個好主意。
這樣的事情可能會起作用:
f = open("datafile.txt", "r")
g = open("datafile_fixed.txt", "w")
for line in f:
if line.strip():
g.write("\t".join(line.split()[1:]) + "\n")
f.close()
g.close()
print ''.join([' '.join(l.split()[1:]) for l in file('datafile.txt')])
或者,如果您想保留空格並且知道第二列始終以第10個字符開頭:
print ''.join([l[11:] for l in file('datafile.txt')])
讀一些有關python i / o的信息可能會有所幫助,但是類似以下內容的內容應該可以幫助您:
with open("datafile.txt", "r") as fin:
with open("outputfile.txt", "w") as fout:
for line in fin:
line = line.split(' ')
if len(line) == 3:
del line[0]
fout.write(line[0] + ' ' + line[1])
else:
fout.write('\n')
編輯:固定為使用空白行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.