精华内容
下载资源
问答
  • 如果一个DataFrame的index乱了,按正常的sort_index无法排序,则可以用reindex函数

    如果一个DataFrame的index乱了,按正常的sort_index无法排序,则可以用reindex函数

    import numpy as np
    import pandas as pd
    >>> randWeek=['Tues','Thur','Mon','Sat','Fri','Sun','Wed']
    >>> frame=pd.DataFrame(np.random.randn(7,3),columns=list('abc'),index=randWeek)
    >>> frame
                     a         b         c
        Tues  0.054086 -2.546081  0.051492
        Thur  0.232368 -0.937215  0.883313
        Mon  -1.004652  1.266954  0.321374
        Sat   2.003404  0.514108  0.640477
        Fri  -0.631527  0.939361 -0.013297
        Sun   0.492959 -0.171945  0.030827
        Wed  -0.334522 -0.334029  0.575805
    
    >>> normalWeek=['Mon','Tues','Wed','Thur','Fri','Sat','Sun']
    >>> frame.reindex(normalWeek)
                     a         b         c
        Mon  -1.004652  1.266954  0.321374
        Tues  0.054086 -2.546081  0.051492
        Wed  -0.334522 -0.334029  0.575805
        Thur  0.232368 -0.937215  0.883313
        Fri  -0.631527  0.939361 -0.013297
        Sat   2.003404  0.514108  0.640477
        Sun   0.492959 -0.171945  0.030827

    指定的list中的index可以比DataFrame中已有的index多或少

    >>> otherWeek1=['Tues','Wed','Thur','Fri','Sat','Sun']
    >>> frame.reindex(otherWeek1)
                     a         b         c
        Tues  0.054086 -2.546081  0.051492
        Wed  -0.334522 -0.334029  0.575805
        Thur  0.232368 -0.937215  0.883313
        Fri  -0.631527  0.939361 -0.013297
        Sat   2.003404  0.514108  0.640477
        Sun   0.492959 -0.171945  0.030827
    
    >>> otherWeek2=['Mon','Tues','Wed','Thur','Fri','Sat','Sun','lalala']
    >>> frame.reindex(otherWeek2)
                       a         b         c
        Mon    -1.004652  1.266954  0.321374
        Tues    0.054086 -2.546081  0.051492
        Wed    -0.334522 -0.334029  0.575805
        Thur    0.232368 -0.937215  0.883313
        Fri    -0.631527  0.939361 -0.013297
        Sat     2.003404  0.514108  0.640477
        Sun     0.492959 -0.171945  0.030827
        lalala       NaN       NaN       NaN

    人生苦短,我用python~

    展开全文
  • pandas共有两种数据结构类型分别为series和dataframe,他们的区别和联系如下: 区别: series,只是一个一维数据结构,它由index和value组成。 dataframe,是一个二维结构,除了拥有index和value之外,还拥有column。...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

    from pandas import DataFrame

    frame = DataFrame(np.arange(9).reshape((3,3)),index=['a','c','d'],columns=['Ohio','Texas','California']

    states = ['Texas','Utah','California']

     

    frame.reindex(columns=states)

    # a index赋值给b

    frame.reindex(index=['a','b','c','d',method='ffill',columns=states)

    # c index赋值给b

    frame.reindex(index=['a','b','c','d',method='ffill',columns=states)

     

    转载于:https://my.oschina.net/u/1866459/blog/2878819

    展开全文
  • /usr/bin/env python # -*- coding:utf-8 -*- import pandas as pd import numpy as np def main(): dates = pd.date_range("20180301", periods=8) df = pd.DataFrame(np.random.randn(8, 5), index=...
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import pandas as pd
    import numpy as np
    
    
    def main():
        dates = pd.date_range("20180301", periods=8)
        df = pd.DataFrame(np.random.randn(8, 5), index=dates, columns=list('ABCDE'))  # randn正态分布中随机数#
        print (df)
        df1 = df.reindex(index=dates[:4], columns=list("ABCD") + ["G"])#reindex()数据符合新的索引来构造一个新的对象
        # 使它符合新的索引,如果索引的值不存在就填入缺失值 #
        # method:插值填充方法method: {None, ‘backfill’ / ’bfill’, ‘pad’ / ’ffill’, ‘nearest’} #
        # ffill / pad向前或进位填充,bfill / backfill向后或进位填充 #
        # #reindex可以改变(行)索引,列或两者。当只传入一个序列时,结果中的行被重新索引,使用columns可以将列进行索引#
        # fill_value:引入的缺失数据值;limit:填充间隙;如果新索引与旧的相等则底层数据不会拷贝。默认为True(即始终拷贝);
        #level:在多层索引上匹配简单索引
        df1.loc[dates[0]:dates[1], "G"] = 1  # 第一行、 第二行G列值为1 ,第三行第四行为缺省值NaN#
        print (df1)
        print (df1.dropna()) # 删除空值 #
        print (df1.fillna(value=2)) # 填充空值 #
        
    
    
    if __name__ == "__main__":
        main()
    
    展开全文
  • 在使用elasticsearch7.x的过程,发现elasticsearch默认的副本数和分片数都为1,随着数据量不断增多,一个分片导致写入索引的效率越来越低,之后决定对业务层和数仓的索引进行重建 # -*- coding: utf-8 -*- # @Time ...

    在使用elasticsearch7.x的过程中,发现elasticsearch默认的副本数和分片数都为1,随着数据量不断增多,一个分片导致写入索引的效率越来越低,之后决定对业务层和数仓的索引进行重建

    # -*- coding: utf-8 -*-
    # @Time    : 2019/9/21 13:48
    # @Author  : Cocktail_py
    
    import logging
    import traceback
    
    import requests
    from elasticsearch import Elasticsearch
    from requests.auth import HTTPBasicAuth
    
    logging.basicConfig(
        format="%(asctime)s - %(levelname)s - %(message)s",
        level=logging.INFO)
    
    es = Elasticsearch("host1:19200,host2:19200,host3:19200".split(","),
                       http_auth=("username", "password"), timeout=180,
                       max_retries=10,
                       retry_on_timeout=True)
    
    # 获取数仓索引以及相应的mapping
    for da in list(es.indices.get_mapping("dw_gofish_*").items()):
        index = da[0]
        mapping = da[1]
        mapping["settings"] = {
            # 先改為-1(禁用刷新),之後根據業務場景設置(30s,或者更長)
            "refresh_interval": "-1",
            "translog": {
                "flush_threshold_size": "2gb",
                "sync_interval": "120s",
                "durability": "async"
            },
            "index": {
                # 分片數,分片数量建议为>=节点数,平均每个分片数据不超过30G
                "number_of_shards": "10",
                # 副本先改為0,reindex之後改為1
                "number_of_replicas": "0"
            }
    
        }
    
        # 旧索引
        index_nw = "{}_nw".format(index)
    
        # 新建新的索引
        try:
            result = es.indices.create(index_nw, mapping)
            logging.info(result)
        except:
            logging.error(traceback.format_exc())
            pass
    
        # 取别名
        es.indices.put_alias([index, index_nw], name="{}_alias".format(index))
    
        # 异步reindex
        result = requests.post(
            "http://ip1:19200/_reindex?refresh&wait_for_completion=false",
            json={
                "source": {
                    "index": index,
                    "size": 10000
                },
                "dest": {
                    "index": index_nw
                }
            },
            headers={'Content-Type': 'application/json'},
            # auth 用戶名密碼
            auth=HTTPBasicAuth("username", "password"))
        logging.info(result.text)
    
    

    查看索引已存在的索引、文档数量,占用存储空间大小等信息

    # pri(主分片数)、rep(副分片数)、docs.count(索引现有文档数)、docs.deleted(索引标记为删除的文档数)、store.size(索引总大小)、pri.store.size(索引主分片大小)
    GET _cat/indices/index_name?v
    

    查看索引settings设置

    GET /index_name/_settings
    

    查看reindex进度

    GET _tasks?detailed=true&actions=*reindex
    
    # 删除所有滚动
    import requests
    from requests.auth import HTTPBasicAuth
    result = requests.delete(
    "http://xxx.xxx.xxxx:19200/_search/scroll/_all",
    headers={'Content-Type': 'application/json'},
    # auth 用戶名密碼
    auth=HTTPBasicAuth("username", "password"))
    print(result)
    
    展开全文
  • 我试了几下,如果去掉#first way的代码,代码就可以正常运行。 ![图片说明](https://img-ask.csdn.net/upload/202006/13/1592044312_286779.png) 不去#first way代码的运行结果为: ![图片说明]...
  • 参考文章: Pandas详解八之ReIndex重新索引 ...《利用python进行数据分析》写: reindex()方法用于创建一个符合新索引的新对象 ①对于Series类型,调用reindex()会将数据按照新的索引进行排列,如果某个索引值...
  • python中的Reindexing

    2018-03-18 21:15:05
    Reindexing在一个Series上调用reindex是根据新的索引重新排列数据,如果有新的索引,那么对应的值为NaN。当然,如果新的索引不包含之前的索引,那么这些索引以及对应的数据并不包含在新返回的对象。In [49]: obj = ...
  • yinhaibo@yinhaibo-OptiPlex-9020:~$ ...Python 3.6.5 |Anaconda custom (64-bit)| (default, Apr 29 2018, 16:14:56) Type 'copyright', 'credits' or 'license' for more information IPython 7.1.1 -- An e...
  • 第1.2 章 elasticsearch reindex

    千次阅读 2018-10-16 09:35:42
    因为之前es的引用不是通过索引别名来操作,导致后续有很多麻烦,如果通过python脚本来写,elasticsearch删除字段在这篇文章已经讲过了。今天找到一种方法reindex 这个连新索引都不用建立 POST _reindex { &...
  • 使用reindex()方法,reindex()方法可以添加一列或多列数据,并且可以指定列的位置,也可以对原先存在的列进行重排。方法的columns属性控制着列的位置,c是添加的一列,其位于a和b前面,这说明c列是新数据框的第一...
  • def localExcel(dayslist): df = pd.read_excel(zebraio) test_data = [] for i in df.index.values: #... row_data = df.loc[i].reindex( ['excel1', 'excel2', 'excel3', 'excel4', 'excel5']) # loc[i]这里就
  • python初学笔记一

    2019-10-09 19:57:14
    **1、关于pandas fill_value=0、'ffill'命令的小总结** DataFrame 对象的重新索引方法为:.reindex(index=None,columns=None,kwargs)。仅比 Series 多了一个可选的 columns 参数,用于给列索引。用法与上例...
  • DataFrame对象操作 重新索引 .reindex()能够改变或重排Series和DataFrame索引 .reindex(index=None, columns=None,…)的参数 ... 重新索引,用于填充缺失位置的值 method 填充方法, ffi...
  • 在pandas中reindex能够创建一个适应新索引的新对象 >>> obj=Series([4.5, 7.2, -5.3, 3.6], index=['d', 'b', 'a', 'c']) >>> obj d 4.5 b 7.2 a -5.3...
  • 索引的作用相当于图书的目录,可以根据目录的页码快速找到所需的内容。 更方便地查询数据 使用索引可以提升查询性能 多维索引用于多维聚类 重设索引有一个很重要的方法reindex,它的作用是创建一个适应新索引的...
  • 本文参考《利用Python进行数据分析》的第五章 pandas入门 2基本功能 介绍操作Series和DataFrame的数据的基本手段。 重新索引reindex 当调用Series的reindex将会根据新索引进行重排;当某个索引值当前不存在,就...
  • 需求:筛选出csv文件的目标数据,拿出目标行,并把它存储在另一个csv文件里 #读文件, df = pd.read_csv('##########.csv') #读取csv文件的行数 le = df.reindex() columns = df.columns.values # 获取表头 for...
  • 申明:本系列文章是自己在学习《利用Python进行数据分析》这本书的过程,为了方便后期自己巩固知识而整理。 第一 重新索引 Series的reindex方法 In [15]: obj = Series([3,2,5,7,6,9,0,1,4,8],index=['a','b'...
  • 本篇文章内容来自《利用python进行数据分析》一书,仅为方便平时使用,如有错误请反馈 重建索引 reindex用于创建一个适应新索引的新对象。如果某个索引值当前不存在就进入一个缺失值。 >&gt...
  • 下面我们来从Series和DataFrame的数据入手,看看pandas最重要也最基础的内容。 reindex函数 drop函数 对于DataFrame的行标签索引,loc和iloc比较特殊。这两个方法能通过axis labels(loc)或integer(iloc)来选择行或...
  • python_pandas DAY_18(2)

    2020-01-26 12:14:32
    操作直接在代码展示 import pandas as pd import numpy as np s=pd.Series([1,3,4,6,8],index=list("acegi")) print(s) print(s.reindex(list("abcdefghi"),fill_value=0))#重新更替索引,并给没有值的索引...
  • 一、DataFrame的建构整理 转置 行和列的增加减少变动 (1)列的增加可以有2种情况:使用索引列的方法;使用concat函数合并 (2)行的增加有3种情况:使用...简单运算+、-、*是简单运算符可以直接使用,而除法需
  • 学习pandas一些常用的功能 1. Series的reindex()方法能修改Series的index,如果修改的index与创建的index没有对应的话,就会引入缺失值 import pandas as pd import numpy as np obj=pd.Series([4.1,4.2,5.7,...
  • 重置索引:df.reindex([,]) 无需个数一致 指定某一列作为index:df.set_index(“M”,drop=False) 返回index的唯一值:df.set_index(“M”).index.unique() df.reset_index():将分层索引层级移动到列   &...
  • 1、关于pandasupdate的报错cannot reindex from a duplicate axis 这个问题显示你的dataframe的行索引有重复,重新索引编码即可。 我的问题是因为我将两个数据框concat后,索引有重复的。 网上有很多解释,但是...
  • reindex重新索引 --------> drop丢弃数据 --------> 索引和选取 … 6.3 => 数学和统计方法 在pandas有多个方法可以索引,选取和组合数据,下面我们来看看吧! 对于Series Series索引的方式和Numpy数组的...
  • 重新索引 Series和DataFrame在创建时可以对其index属性进行修改(DataFrameindex修改行属性)。创建后需要对index修改需要用到reindex方法。s1 = pd.Series([1,2,3],index=['c','a','b']) s1.reindex(['a','b','c']...

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

python中reindex

python 订阅