如何使用Pandas创建if语句,获取csv的最后一行并在特定的col处提取,如果col为空,请在其前面检查行?

约翰·里斯23487

我想知道是否可以创建一个if语句来检查特定单元格的最后一行,以查看它是否包含任何数据或它是否为“ nan”。如果其中包含数据,请继续执行;否则,我希望程序检查最后一行之前的行。

这是我到目前为止使用的代码,使用在github上找到的csv数据:

import pandas as pd
import csv
import requests


url1 = r"https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/vaccinations/country_data/Austria.csv"

file1 = pd.read_csv(url1)

df1 = pd.DataFrame(file1.iloc[:,:].values)

df1 = pd.DataFrame(file1.iloc[-1:,:].values)


# This line gets the last row of csv file
Austria_date = df1.iloc[:,1]

# This line gets the cell of the last row, but unforatenly it does not contain data, instead "nan"
Austria_cum = df1.iloc[:, 4].map('{:,}'.format)

是否可以创建一个if语句来检查前一行并查看其中是否包含数据?

Loic RW

如果您只想从填充数据的最后一行获取数据,则可以使用:

df.fillna(method='ffill')

它将打开以下df:

日期 预防接种
17-2-21 10
18-2-21 20
19-2-21 N

进入:

日期 预防接种
17-2-21 10
18-2-21 20
19-2-21 20

请注意,这将填充所有NaN值,有关更多信息,请参见:https : //pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.fillna.html

编辑:

我已经更改了示例,以反映出我的方法与Rob Raymond的方法相比所获得的不同结果。如果希望结果为Date: 18-2-21, Vaccinations: 20,则应采用Rob Raymond的处理缺失值的方法。如果要得到结果,Date: 19-2-21, Vaccinations: 20则应使用此答案中描述的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章