【问题标题】:Checking for duplicate data in pandas [duplicate]检查熊猫中的重复数据[重复]
【发布时间】:2020-03-22 15:13:17
【问题描述】:

我有以下代码:

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 是否在当前目录中。如果找不到,则创建文件。

如果找到该文件,则下载 data 中的间谍代码数据并将该数据附加到 data1 并将其保存在 csv 文件中。

data1 的输出如下所示:

问题

  • 如何删除Unnamed:0 列,为什么会出现?
  • 如何检查和删除data 中的重复数据并将其附加到data1

【问题讨论】:

  • 每个帖子只问1个问题。您的所有问题在 SO 上都有很多重复项。请在询问之前搜索 SO - 最好的方法是使用您选择的搜索引擎并将其结果限制为 site:stackoverflow.com - 通常您可能遇到的任何(基本)问题都已在此处得到解答。

标签: python python-3.x pandas


【解决方案1】:

所以你基本上有两个问题,我会一一解决:

问题 1

如果你想删除列Unnamed:0,你必须去data1.drop(['Unnamed:0'], axis = 1),这会从表中删除列。

问题 2

现在,如果您想删除重复的行,可以使用data.drop_duplicates(),这将删除重复的行并保持第一行不变。之后你可以简单地pandas.concat(data1, data)

您基本上需要的是在 pandas 文档中查找方法,那里提到的所有内容都大胆而清晰。 希望这会有所帮助。

【讨论】:

    【解决方案2】:

    关于添加的未命名列的第一个问题:尝试根据接受的答案传递index=Falseindex_col=0 对同一主题的this 问题。 这会强制 pandas 将第一列作为索引读取,因此它不会添加额外的列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-03
      • 2019-02-23
      • 1970-01-01
      • 2018-04-21
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      相关资源
      最近更新 更多