访问CSV文件中名为X的最新条目



我有一个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_csvloc:一起使用

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']

我建议不要用这个,太脆了。

最新更新