import pandas as pd
se1=pd.Series(['a','b','b','d','d','d','e','f','f'])
se2=pd.Series(['1','2','2','4','4','4','5','7','8'])
df = pd.DataFrame({'name':se1, 'number':se2})
看一下df的样子:
2.查看name列中包含的数据有哪些?
print(df['name'].unique())
结果为:['a' 'b' 'd' 'e' 'f']
可以看到结果为name列中包含的不同的数据值。这个函数筛选的并非列中值出现一次的值,而是输出列中存在的值。
3.输出列中每个数值,及每个值出现的次数
df['name'].value_counts()
输出结果如下:
4.查看数据集中行的重复情况
df.duplicated()
结果如下:
可以看到duplicated会对行的重复情况做检查,并且将重复行中的第一行置为False,其余行置为True。也就是说认为重复行中的第一行为不重复,剩余行为重复行。
深入一下:
duplicate的参数为:duplicated(subset=None,keep=“first”)。
其中keep参数可以设置如下:
- first:从前向后查找,除了第一次出现外,其余相同的被标记为重复。默认为此选项。(上面的实验已经看到这一点)
- last:从后向前查找,除了最后一次出现外,其余相同的被标记为重复。
- False:所有相同的都标记为重复。
subset:用于识别重复的列标签或列标签序列,默认识别所有的列标签。
使用方法:df.duplicated(subset=['name','number'])。
5.删除数据集中重复的行
df.drop_duplicates()
将返回数据集中,不同的数据行
深入一下:
drop_duplicates(subset=None,keep=“first”,inplace=False)
inplace:表示是否在原数据上操作,如果设为True,则表示直接修改原数据;如果设为False,则表示修改原数据的副本,返回新数据。True可以理解为永久修改,False为临时修改。
keep:同duplicated一样,这里就不再详细说了。
看一下subset的实验:
df.drop_duplicates(subset='name')
结果如下:
可以看到,删除重复行的时候,只考虑了subset集中列的重复情况,未考虑其他列的重复情况。
欢迎点赞、评论、转发~
Python pandas库提供了一些方便的方法来删除数据框(DataFrame)中的重复行。本文将介绍如何使用这些方法来删除所有重复行,不进行数据保留。首先,我们需要读取包含重复行的数据。在本文中,我们使用了一个示例数据集,该数据集包含了一些重复数据,并保存在CSV文件中。以上就是使用Python pandas库删除所有重复行的方法。方法来检查数据框的重复行。最后,我们可以将新的数据框保存回CSV文件中。在删除重复行之前,我们应该先检查是否存在重复行。如果输出结果中有True值,则表示存在重复行。
pandas读取一组数据,可能存在重复索引,虽然可以利用drop_duplicate直接删除,但是会删除重要信息。
比如同一ID用户,多次登录学习时间。要计算该用户总共‘’学习时间‘’,就要把重复的ID的‘’学习时间‘’累加。
可以结合groupby和sum函数完成该操作。
实例如下:
新建一个DataFrame,计算每个 id 的总共学习时间。其中 id 为one/two的存在重复学习时间。先利用 groupby 按照键 id 分组,然后利用sum()函数求和,即可得到每个id的总共学习时间。
以上这篇对DataFrame数据中的重复行,利用groupby累加合并的方法详解就是小编分享给大
python数据分析工具pandas中DataFrame和Series作为主要的数据结构.
本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数。
1)查看DataFrame数据及属性
df_obj = DataFrame() #创建DataFrame对象
df_obj.dtypes #查看各行的数据格式
df_obj['列名'].astype(int)#转换某列的数据类型
df_obj.head() #查看前几行的数据,默认前5行
df_obj.tail() #查看后几行的数据,默认后5行
df_obj.index #查看索引
df_obj.columns #查看列
在Python中创建DataFrame是一个常见的任务,但是有时候需要创建含有重复列名的DataFrame数据集。在上述代码中,我们使用了字典数据结构来构建DataFrame,其中包含三列数据,其中’A’列被重复定义了两次。将原有的’A’列重新命名为’A_new’,这样便可以直接使用列名来索引DataFrame数据了。使用以上代码,我们可以通过下标访问到包含重复列名的DataFrame数据集的数据。通过以上两种方法,我们可以成功创建并使用含有重复列名称的DataFrame数据集。
dataFrame数据如下
import pandas as pd
data = pd.DataFrame({'name':['小红','小兰','小明','小芳'], 'sex':["女","女","男","女"], 'age':[19,20,23,20]})
name sex age
0 小红 女 19
1 小兰 女 20
2 小明 男 23
3 小芳 女 20
1.查找age列相...
data.drop_duplicates()#data中一行元素全部相同时才去除
https://blog.csdn.net/weixin_30849591/article/details/95490552
在python中set(集合)是和数学意义上的集合一样,不允许元素重复,因此可以将list转为set去重,当然这样比较粗暴,不清楚哪些数据是重复的。
如果要找出哪些元素是重复的,可以用pandas库的dataframe数据结构,用drop_duplicates方法进行去重。原理是这样:drop_duplicates方法可以完全清除重复元素,比如[1, 2, 2, 3],经过drop_duplic...
使用DataFrame来查看我们刚刚输入的表格,使用duplicated()函数来查看重复数据,如果数据重复就返回True,否则返回False,为bool类型的数据;也可以用duplicated('你要指定的列')指定列来查看重复数据,不指定则默认为第一列,如上图的num列;
使用函数drop_duplicates('num',inplace = True)来删除指定的数据,可以指定返回的.
pandas使用iloc函数将dataframe所有的数值重置为0或者其他固定值(setting all values in dataframe to zero or other specific values)
第二个想法:只保留第一次出现的重复行
第三个想法:保留最后一次出现的重复行
这三个想法都可以用pandas中自带一个方法实现。 DataFrame.drop_duplicates()
具体实现如
为了删除数据表格中的重复列,我们可以使用pandas的drop_duplicates()函数。Python的pandas库提供了很方便的方法来删除这些重复的列。为了检查重复列是否已经被成功删除,我们可以通过pandas库自带的duplicated()函数来查看是否还存在重复的列。在本例中,我们将使用pandas库加载一个样例数据,数据包含有两个重复的列。可以看到,数据包含了四列,其中有两列是重复的:‘state’和’city’。在本例中,我们希望删除重复列,并保留第一个副本。
今天用numpy 的linalg.det()求矩阵的逆的过程中出现了一个错误:
TypeError: No loop matching the specified signature and casting was found for ufunc det
查了半天发现是数据类型的问题,numpy在算逆的时候会先检查一下数据类型是否一致,若不一致就会报错(话说这个错误提示信息也太难理解了,还得看源码o(╯□╰)o)。
由于我的数据是用pandas.DataFrame读取的,所以每一列的数据类型有可能不同。
回头检查一下数据,果然有的是int,有的是float。所以全部改为float64类型。