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,并且有两个日期相同,则必须筛选最后一行。可能存在重复的