Python 如何删除空数据行

Python 如何删除空数据行,python,pandas,Python,Pandas,我有如下格式的数据: Date,Open,High,Low,Close,Adj Close,Volume 2019-07-31,0.44,0.4401,0.44,0.44,0.44,32900 2019-08-01,0.45,0.45,0.45,0.45,0.45,200 2019-08-02,0.44,0.44,0.43,0.44,0.44,13800 2019-08-08,0.45,0.4501,0.45,0.4501,0.4501,400 2019-08-15,0.43,0.43,0.43

我有如下格式的数据:

Date,Open,High,Low,Close,Adj Close,Volume
2019-07-31,0.44,0.4401,0.44,0.44,0.44,32900
2019-08-01,0.45,0.45,0.45,0.45,0.45,200
2019-08-02,0.44,0.44,0.43,0.44,0.44,13800
2019-08-08,0.45,0.4501,0.45,0.4501,0.4501,400
2019-08-15,0.43,0.43,0.43,0.43,0.43,300
2019-08-15,0.0,0.0,0.0,0.43,0.43,0
请注意,最后一行的数据为空。
如何筛选此行或删除此行

df = None
for ticker in tickers:
    try:
        df = pd.read_csv('stock_data/daily/{}.csv'.format(ticker), parse_dates=True, index_col=0).dropna()
    except FileNotFoundError as e:
        continue    # continue with next ticker
    df_closes = df['Close']
    if len(df_closes) < 4:
        continue    # continue with next ticker
    df_closes = df_closes[pd.notnull(df['Close'])]   # delete rows with empty data
    df_closes = df_closes.reindex(index=df_closes.index[::-1]) # reversing

df=None
对于自动售检票机中的自动售检票机:
尝试:
df=pd.read\u csv('stock\u data/daily/{}.csv'.format(ticker),parse\u dates=True,index\u col=0.dropna()
除FileNotFoundError为e外:
继续#继续下一步
df_closes=df['Close']
如果len(df_关闭)<4:
继续#继续下一步
df_closes=df_closes[pd.notnull(df['Close'])]#删除数据为空的行
df_closes=df_closes.reindex(index=df_closes.index[::-1])反转

<代码> > p>我假定,如果<代码>卷< /COD>列为0,则记录为空,我们可以用

过滤掉这些记录。
df = df[df['Volume'] > 0]
或者,我们可以检查
打开
中是否至少有一个与零不同,并筛选出这些列中只有零的行:

df = df[df[['Open', 'High', 'Low']].any(axis=1)]
您可以使用以下方法删除重复索引:

df = df[~df.index.duplicated()]
df=df[~df.index.duplicated()]
我们可以在
duplicated(…)
中添加一个参数,指定要保留的参数。可能的值有
'first'
'last'
False
(这意味着删除了重复索引的所有项)。默认值为
“first”


您可以先删除没有值的记录,然后删除具有重复索引的项。我不会按相反的顺序执行,因为你要用数据删除记录,并保留一个没有数据的记录。

< P>我假设你认为一个记录是空的,因为<代码>卷< /Cuth>列为零,我们可以用

过滤掉这些记录。
df = df[df['Volume'] > 0]
或者,我们可以检查
打开
中是否至少有一个与零不同,并筛选出这些列中只有零的行:

df = df[df[['Open', 'High', 'Low']].any(axis=1)]
您可以使用以下方法删除重复索引:

df = df[~df.index.duplicated()]
df=df[~df.index.duplicated()]
我们可以在
duplicated(…)
中添加一个参数,指定要保留的参数。可能的值有
'first'
'last'
False
(这意味着删除了重复索引的所有项)。默认值为
“first”


您可以先删除没有值的记录,然后删除具有重复索引的项。我不会以相反的顺序执行此操作,因为这样您可能会删除包含数据的记录,而保留不包含数据的记录。

删除包含代码的行,如下所示:

#Deleting the whole row if a specific column(multiple rows can be added into this list) has value zero
df[df['High'] != 0]
df[df['High'].ne(0)]


删除带有以下代码的行:

#Deleting the whole row if a specific column(multiple rows can be added into this list) has value zero
df[df['High'] != 0]
df[df['High'].ne(0)]


你说它有空数据是什么意思?对于最后一行,关闭不为空。条件是什么,空“打开”、“高”和“低”?打开、高和低中的数据为0.0,并且2019-08-15有两行。如果所有列中只有一列为0.0,并且有两个相同的日期,则必须过滤最后一行。可能重复的内容是什么?您的意思是它有空数据?对于最后一行,关闭不为空。条件是什么,空“打开”、“高”和“低”?打开、高和低中的数据为0.0,并且2019-08-15有两行。如果所有列中只有一列为0.0,并且有两个日期相同,则必须筛选最后一行。可能存在重复的