我有一个csv文件,列为:
Date,Time,Spread,Result,Direction,Entry,TP,SL,Bal
典型的条目如下:
16/07/21,01:25:05,N/A,No Id,Null,N/A,N/A,N/A,N/A
16/07/21,01:30:06,N/A,No Id,Null,N/A,N/A,N/A,N/A
16/07/21,01:35:05,8.06,Did not qualify,Long,N/A,N/A,N/A,N/A
16/07/21,01:38:20,6.61,Trade,Long,1906.03,1912.6440000000002,1900.0,1000.0
16/07/21,01:41:06,N/A,No Id,Null,N/A,N/A,N/A,N/A
如果Result
列条目等于Trade
(最好不遍历整个文件(,我该如何访问最新条目?
如果它必须是一个循环,则必须从最新到最早进行循环,因为它是一个大的csv文件。
如果要使用pandas
,请尝试将read_csv
与loc
:一起使用
df = pd.read_csv('yourcsv.csv')
print(df.loc[df['Result'] == 'Trade'].iloc[[-1]])
将.csv加载到pd.DataFrame中,您可以获得df.Results
等于Trade
的所有行,如下所示:
df[df.Result == 'Trade']
如果你只想要最后一个,那么列表使用.iloc
df[df.Result == 'Trade'].iloc[-1]
我希望这就是你想要的。
我建议您使用pandas
,但如果您真的不能,这里有一种方法。
假设数据在data.csv
:中
from csv import reader
with open("data.csv") as data:
rows = [row for row in reader(data)]
col = rows[0].index('Result')
res = [row for i, row in enumerate(rows) if i > 0 and row[col] == 'Trade']
我建议不要用这个,太脆了。