精华内容
下载资源
问答
  • 主要介绍了Pandas实现一列数据分隔为两列,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇pandas 对每一列数据进行标准化的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇pandas使用apply多列生成一列数据的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了pandas对dataFrame中某数据进行处理的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 下面小编就为大家分享一篇pandas 取出表中一列数据所有的值并转换为array类型的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 摘要:本文主要是讲解怎么样替换某一列的一个值。 应用场景: 假如我们有以下的数据集: 我们想把里面不是pre的字符串全部换成Nonpre,我们要怎么做呢? 做法很简单。 df['col2']=df['col1'] df.loc[df['col1'] !=...
  • 今天小编就为大家分享一篇使用pandas把某一列的字符值转换为数字的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 使用map的方法就可以实现把某一列的字符类型的值转换为数字。 class_...
  • 今天小编就为大家分享一篇pandas DataFrame实现几列数据合并成为新的一列方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 下面小编就为大家分享pandas对指定进行填充的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 下面小编就为大家分享pandas数据框,统计某列数据对应的个数方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了pandas去除重复的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • pandas依据多列数据生成某一列数据一、数据修改二、依据多列数据修改某一列 一、数据修改 网上pandas的数据修改大多是依据某一列数据进行修改或者生成了,几乎没有找到依据多列数据生成或者修改某一列的 依据某一列...

    pandas依据多列数据生成某一列数据

    一、数据修改

    网上pandas的数据修改大多是依据某一列数据进行修改或者生成了,几乎没有找到依据多列数据生成或者修改某一列的

    依据某一列数据修改某一列数据的方法:
    方法一:

    df.loc[df.a>=2,'b'] = 'new_data'
    

    来自chenpe32cp:《python pandas如何基于某一列修改某一列的值》,链接: python pandas如何基于某一列修改某一列的值.

    方法二:

    df["a"]=df["b"].map(lambda x: x+1)
    

    来自Allan-li:《对DataFrame中某一列数据进行修改的方法》,接: 对DataFrame中某一列数据进行修改的方法.

    二、依据多列数据修改某一列

    此处目标为依据“比例”和“选定法定刑”生成“幅度法定刑”
    在这里插入图片描述
    在这里插入图片描述

    之前主要是对某一列修改,运用的是方法二,因而此处的依据多列数据修改某一列是再次基础上的更进一步,通过循环来完成

     for a,b in zip(df["比例"],df["选定法定刑"]):
        element.append(drm(a,b))
    df["幅度法定刑"] = element
    

    其中的drm()是预先设定的一个函数
    完整的为:

    def data_random_margin(x,y):
    	 list_math = [i for i in range(int(y),181)]
    	#print(list_math)
    	 len_ = len(list_math)
    if int(len_)>2:
        if x < 0.10547166487854089:
            wieght = np.random.randint(1, 2, len_)
            list_math_split_1 = wieght[:int(len_ / 2)]
            list_math_copy_1 = []
            list_math_split_2 = wieght[int(len_ / 2):]
            list_math_copy_2 = []
            for i, content in enumerate(list_math_split_1):
                content = content - x / 7500 * i
                list_math_copy_1.append(content)
            # print(list_math_copy_1)
            for i, content in enumerate(list_math_split_2):
                content = content + x / 7500 * i
                list_math_copy_2.append(content)
    
            wieght_ = list_math_copy_1 + list_math_copy_2
            # print(wieght_)
    
            data = random.choices(list_math, weights=wieght_)
            return data[0]
    
        elif x == 0.10547166487854089:
            wieght = np.random.randint(1, 2, 151)
            data = random.choices(list_math, weights=wieght)
            return data[0]
        elif x > 0.10547166487854089:
    
            wieght = np.random.randint(1, 2, len_)
            list_math_split_1 = wieght[:int(len_ / 2)]
            list_math_copy_1 = []
            list_math_split_2 = wieght[int(len_ / 2):]
            list_math_copy_2 = []
            for i, content in enumerate(list_math_split_1):
                content = content + x / 7500 * i
                list_math_copy_1.append(content)
    
            for i, content in enumerate(list_math_split_2):
                content = content - x / 7500 * i
                list_math_copy_2.append(content)
            list_math_copy_1 = sorted(list_math_copy_1, reverse=True)
            wieght_ = list_math_copy_1 + list_math_copy_2
            # print(wieght_)
    
            data = random.choices(list_math, weights=wieght_)
            return data[0]
    	
    
    
    from 项目.中国裁判文书网.selenium路线.数据集处理过程.中文年份数字化 import data_random_margin as drm
     for a,b in zip(df["比例"],df["选定法定刑"]):
        element.append(drm(a,b))
    df["幅度法定刑"] = element
    

    不太好的一点就是速度特别慢,

    展开全文
  • 主要介绍了Pandas DataFrame数据的更改、插入新增的和行的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 今天小编就为大家分享Pandas统计重复的里面的值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享篇利用pandas将非数值数据转换成数值的方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 下面小编就为大家分享pandas.DataFrame 根据条件新建并赋值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇Pandas 解决dataframe的一列进行向下顺移问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • pandas 取某一列数据的几种形式比较

    万次阅读 2019-12-10 14:22:41
    工作中我们需要对DataFrame进行比较多样化的操作,那么当我们需要取出某一列数据时该如何进行操作呢,下面的代码就是对几种方法的一个总结,希望对各位有所帮助。可以根据自己的需求取出需要的一列或多列。 import...

     工作中我们需要对DataFrame进行比较多样化的操作,那么当我们需要取出某一列数据时该如何进行操作呢,下面的代码就是对几种方法的一个总结,希望对各位有所帮助。可以根据自己的需求取出需要的一列或多列。

    import pandas as pd
    data1 = pd.DataFrame(...) #任意初始化一个列数为3的DataFrame
    data1.columns=['a', 'b', 'c']
     
    1.
    data1['b']
    #这里取到第2列(即b列)的值
     
    2.
    data1.b
    #效果同1,取第2列(即b列)
    #这里b为列名称,但必须是连续字符串,不能有空格。如果列名有空格,则只能采取第1种方法
     
    3.
    data1[data1.columns[1:]]
    #这里取data1的第2列到最后一列的所有数据
    
    ps:这种方法容易有误解,注意区分
    data1[5:10]
    #这里取6到11行的所有数据,而不是列数据
    

     

    展开全文
  • Pandas怎样新增数据列

    万次阅读 多人点赞 2019-09-24 00:08:38
    在进行数据分析时,经常需要按照一定条件创建新的数据列,然后进行进一步分析。 直接赋值 df.apply方法 df.assign方法 按条件选择分组分别赋值 微信公众号:蚂蚁学Python import pandas as pd 0、读取csv数据到...

    在进行数据分析时,经常需要按照一定条件创建新的数据列,然后进行进一步分析。

    1. 直接赋值
    2. df.apply方法
    3. df.assign方法
    4. 按条件选择分组分别赋值
      微信公众号:蚂蚁学Python
    import pandas as pd
    

    0、读取csv数据到dataframe

    fpath = "./datas/beijing_tianqi/beijing_tianqi_2018.csv"
    df = pd.read_csv(fpath)
    
    df.head()
    
    ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevel
    02018-01-013℃-6℃晴~多云东北风1-2级592
    12018-01-022℃-5℃阴~多云东北风1-2级491
    22018-01-032℃-5℃多云北风1-2级281
    32018-01-040℃-8℃东北风1-2级281
    42018-01-053℃-6℃多云~晴西北风1-2级501

    1、直接赋值的方法

    实例:清理温度列,变成数字类型

    # 替换掉温度的后缀℃
    df.loc[:, "bWendu"] = df["bWendu"].str.replace("℃", "").astype('int32')
    df.loc[:, "yWendu"] = df["yWendu"].str.replace("℃", "").astype('int32')
    
    df.head()
    
    ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevel
    02018-01-013-6晴~多云东北风1-2级592
    12018-01-022-5阴~多云东北风1-2级491
    22018-01-032-5多云北风1-2级281
    32018-01-040-8东北风1-2级281
    42018-01-053-6多云~晴西北风1-2级501

    实例:计算温差

    # 注意,df["bWendu"]其实是一个Series,后面的减法返回的是Series
    df.loc[:, "wencha"] = df["bWendu"] - df["yWendu"]
    
    df.head()
    
    ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevelwencha
    02018-01-013-6晴~多云东北风1-2级5929
    12018-01-022-5阴~多云东北风1-2级4917
    22018-01-032-5多云北风1-2级2817
    32018-01-040-8东北风1-2级2818
    42018-01-053-6多云~晴西北风1-2级5019

    2、df.apply方法

    Apply a function along an axis of the DataFrame.

    Objects passed to the function are Series objects whose index is either the DataFrame’s index (axis=0) or the DataFrame’s columns (axis=1).

    实例:添加一列温度类型:

    1. 如果最高温度大于33度就是高温
    2. 低于-10度是低温
    3. 否则是常温
    def get_wendu_type(x):
        if x["bWendu"] > 33:
            return '高温'
        if x["yWendu"] < -10:
            return '低温'
        return '常温'
    
    # 注意需要设置axis==1,这是series的index是columns
    df.loc[:, "wendu_type"] = df.apply(get_wendu_type, axis=1)
    
    # 查看温度类型的计数
    df["wendu_type"].value_counts()
    
    常温    328
    高温     29
    低温      8
    Name: wendu_type, dtype: int64
    

    3、df.assign方法

    Assign new columns to a DataFrame.

    Returns a new object with all original columns in addition to new ones.

    实例:将温度从摄氏度变成华氏度

    # 可以同时添加多个新的列
    df.assign(
        yWendu_huashi = lambda x : x["yWendu"] * 9 / 5 + 32,
        # 摄氏度转华氏度
        bWendu_huashi = lambda x : x["bWendu"] * 9 / 5 + 32
    )
    
    ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevelwenchawendu_typeyWendu_huashibWendu_huashi
    02018-01-013-6晴~多云东北风1-2级5929常温21.237.4
    12018-01-022-5阴~多云东北风1-2级4917常温23.035.6
    22018-01-032-5多云北风1-2级2817常温23.035.6
    32018-01-040-8东北风1-2级2818常温17.632.0
    42018-01-053-6多云~晴西北风1-2级5019常温21.237.4
    ..........................................
    3602018-12-27-5-12多云~晴西北风3级4817低温10.423.0
    3612018-12-28-3-11西北风3级4018低温12.226.6
    3622018-12-29-3-12西北风2级2919低温10.426.6
    3632018-12-30-2-11晴~多云东北风1级3119低温12.228.4
    3642018-12-31-2-10多云东北风1级5628常温14.028.4

    365 rows × 13 columns

    4、按条件选择分组分别赋值

    按条件先选择数据,然后对这部分数据赋值新列
    实例:高低温差大于10度,则认为温差大

    # 先创建空列(这是第一种创建新列的方法)
    df['wencha_type'] = ''
    
    df.loc[df["bWendu"]-df["yWendu"]>10, "wencha_type"] = "温差大"
    
    df.loc[df["bWendu"]-df["yWendu"]<=10, "wencha_type"] = "温差正常"
    

    课程的代码在:https://github.com/peiss/ant-learn-pandas

    展开全文
  • pandas根据现有列新添加一列

    千次阅读 2021-01-26 20:38:27
    pandas中一个Dataframe,经常需要根据其中一列再新建一列,比如一个常见的例子:需要根据分数来确定等级范围,下面我们就来看一下怎么实现。 def getlevel(score): if score < 60: return "bad" elif score &...

    项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
    经常有同学私信或留言询问相关问题,V号bitcarmanlee。github上star的同学,在我能力与时间允许范围内,尽可能帮大家解答相关问题,一起进步。

    pandas中一个Dataframe,经常需要根据其中一列再新建一列,比如一个常见的例子:需要根据分数来确定等级范围,下面我们就来看一下怎么实现。

    def getlevel(score):
        if score < 60:
            return "bad"
        elif score < 80:
            return "mid"
        else:
            return "good"
    
    
    def test():
        data = {'name': ['lili', 'lucy', 'tracy', 'tony', 'mike'],
                'score': [85, 61, 75, 49, 90]
                }
        df = pd.DataFrame(data=data)
        # 两种方式都可以
        # df['level'] = df.apply(lambda x: getlevel(x['score']), axis=1)
        df['level'] = df.apply(lambda x: getlevel(x.score), axis=1)
    
        print(df)
    

    上面代码运行结果

        name  score level
    0   lili     85  good
    1   lucy     61   mid
    2  tracy     75   mid
    3   tony     49   bad
    4   mike     90  good
    

    要实现上面的功能,主要是使用到dataframe中的apply方法。
    上面的代码,对dataframe新增加一列名为level,level由分数一列而来,如果小于60分为bad,60-80之间为mid,80以上为good。
    其中axis=1表示原有dataframe的行不变,列的维数发生改变。

    展开全文
  • 刚学习pandas,想给个原有的excel表格上实现添加新数据,但是由于刚学,不熟悉dataframe的特性,本来想按照写入json转csv的方式对数据进行添加,那就意味着要对原先表格的数据进行提取再series合并,最后再写入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 73,916
精华内容 29,566
关键字:

pandas加一列数据