我有一个熊猫数据框,我需要将特定的行从中拉出并放入新的数据框。 这些行在列表中看起来像这样:[42 50 52 59 60 62]
我正在从.csv文件创建数据框,但据我所知,在读取.csv并创建数据框时,无法指定行号。
import pandas as pd
df = pd.read_csv('/Users/uni/Desktop/corrindex+id/rt35',index_col = False, header = None )
这是数据框的一部分:
0
0 1 269 245 44 5
1 2 293 393 33 5
2 3 295 175 67 12
3 4 298 415 33 5
4 5 304 392 213 11
答案 0 :(得分:2)
将skiprows
与可调用对象一起使用:
import pandas as pd
keep_rows = [42 50 52 59 60 62]
df = pd.read_csv('/Users/uni/Desktop/corrindex+id/rt35',
header=None
skiprows=lambda x: x not in keep_rows)
答案 1 :(得分:1)
不幸的是,熊猫read_cvs
需要一个真实的文件,而不仅仅是行生成器,因此仅选择一堆行并不容易。但是您可以轻松地在Python级别做到这一点:
lines = [line for i, line in enumerate(open('/Users/uni/Desktop/corrindex+id/rt35'), 1)
if i in [42 50 52 59 60 62]]
df = pd.read_csv(io.StringIO(''.join(lines)),index_col = False, header = None )
您还可以使用skiprows
忽略除要保留的行以外的所有行:
df = pd.read_csv('/Users/uni/Desktop/corrindex+id/rt35',index_col = False,
header = None, skiprows=lambda x: x not in [42 50 52 59 60 62])
答案 2 :(得分:0)
您可以这样处理:
app = Flask(__name__)
@app.route("/")
def home():
return render_template("home.html")
@app.route("/loggedin")
def innsiden():
return render_template("loggedin.html")
@app.route("/login", methods=['GET', 'POST'])
def login():
error = None
if request.method == 'POST':
if request.form['username'] != 'admin' or request.form['password'] != 'admin':
error = 'Invalid Credentials. Please try again.'
else:
return redirect(url_for('loggedin'))
return render_template('login.html', error=error)