在pandas中检查重复数据

11 浏览
0 Comments

在pandas中检查重复数据

我有以下代码:

import pandas as pd
import datetime
import pandas as pd
from pandas_datareader import data as web
import matplotlib.pyplot as plt
from alpha_vantage.foreignexchange import ForeignExchange
import os
from os import path
from alpha_vantage.timeseries import TimeSeries 
import matplotlib.pyplot as plt 
import sys
while True:
    if path.exists('stockdata.csv') == True:
        data1 = pd.read_csv('stockdata.csv')
        ts = TimeSeries(key='1ORS1XLM1YK1GK9Y', output_format='pandas')
        data, meta_data = ts.get_intraday(symbol='spy', interval='1min', outputsize='full')
        data = data.rename(columns={'1. open':'Open','2. high':'High','3. low':'Low','4. close':'Close','5. volume':'Volume'})
        data1 = data1.append(data)
        data1.to_csv('stockdata.csv', sep=' ')
        break
    else:
        data1 = pd.DataFrame(columns=['Open','High','Low','Close','Volume'])
        data1.to_csv('stockdata.csv', sep=' ')

我想做的是检查当前目录中是否存在名为`stockdata.csv`的文件。如果没有找到,则创建该文件。

如果找到了该文件,则下载`spy`股票数据到`data`中,并将该数据附加到`data1`中并保存为csv文件。

`data1`的输出如下所示:

[![enter image description here](https://i.stack.imgur.com/PdVlC.png)](https://i.stack.imgur.com/PdVlC.png)

问题:

- 如何去掉`Unnamed:0`列以及为什么会有这一列?

- 如何检查并删除`data`中的重复数据,并将其附加到`data1`中?

0
0 Comments

问题:如何在pandas中检查重复数据?

原因:问题的原因是要处理两个问题。第一个问题是如何删除列"Unnamed:0",第二个问题是如何删除重复的行。

解决方法:对于第一个问题,可以使用data1.drop(['Unnamed:0'], axis = 1)来删除列"Unnamed:0"。对于第二个问题,可以使用data.drop_duplicates()来删除重复的行并保留第一行。然后可以使用pandas.concat(data1, data)将数据进行合并。

解决方法来源于pandas文档,文档中明确说明了这些方法。

希望这能帮到你。

0
0 Comments

在使用pandas读取CSV文件时,可能会遇到添加了未命名列的问题。解决这个问题的方法是使用index=Falseindex_col=0参数。根据这个关于相同主题的问题的回答,这样可以强制pandas将第一列作为索引,从而避免添加额外的列。

0