subset:如果你认为几个字段重复,则数据重复,就把那几个字段以列表形式放到subset后面。默认是所有字段重复为重复数据。
keep:
-
默认为’first’ ,也就是如果有重复数据,则第一条出现的定义为False,后面的重复数据为True。
-
如果为’last’,也就是如果有重复数据,则最后一条出现的定义为False,后面的重复数据为True。
-
如果为False,则所有重复的为True
df = pd.DataFrame({
'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
'rating': [4, 4, 3.5, 15, 5]
df.duplicated()
0 False
1 True
2 False
3 False
4 False
dtype: bool
df.duplicated(keep="last")
0 True
1 False
2 False
3 False
4 False
dtype: bool
df.duplicated(keep=False)
0 True
1 True
2 False
3 False
4 False
dtype: bool
df.duplicated(subset='brand')
0 False
1 True
2 False
3 True
4 True
dtype: bool
df.duplicated(subset=['brand','style'])
0 False
1 True
2 False
3 False
4 True
dtype: bool
df[df.duplicated()]
df.duplicated().sum()
DataFrame.duplicated(subset=None, keep='first')subset:如果你认为几个字段重复,则数据重复,就把那几个字段以列表形式放到subset后面。默认是所有字段重复为重复数据。keep:默认为’first’ ,也就是如果有重复数据,则第一条出现的定义为False,后面的重复数据为True。如果为’last’,也就是如果有重复数据,则最后一条出现的定义为False,后面的重复数据为True。如果为False,则所有重复的为True下面举例df
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randint(low=1,high=20,size=(3,4)))
data['id'] = range(1,4)
# 输出:其中,最左边的0 1 2 为其索引
② 另外一个数据表是3个用户的app操作日志信息,一个人会有多条app操作记录
sample = pd.DataFrame(np.random.randint(low=1,high=9,si
import numpy as np
salaries = pd.DataFrame({
'name': ['BOSS', 'Lilei', 'Lilei', 'Han', 'BOSS', 'BOSS', 'Han', 'BOSS'],
'Year': [2016, 2016, 2016, 2016, 2017, 2017, 2017, 2017],
'Salary': [1, 2, 3, 4, 5, 6, 7, 8],
'Bonus': [2, 2, 2, 2, 3, 4, 5, 6]
print(salari
DataFrame.drop_duplicates(subset=None, keep=’first’, inplace=False)
subset考虑重复发生在哪一列,默认考虑所有列,就是在任何一列上出现重复都算作是重复数据
keep 包含三个参数first, last, False,first是指,保留搜索到的第一个重复数据,之后的都删除;last是指,保留搜索到的最后一个重复数据,之前的搜索到的重复数据都删除,False是指,把所有搜索到的重复数据都删除,一个都不保留,即如果有两行数据重复,把两行数据都删除,而不是保留其中一行。默认参数是first。
补充知识:pytho
输入多维dataframe:
df = pd.DataFrame({'a':[1,3,5,7,4,5,6,4,7,8,9], 'b':[3,5,6,2,4,6,7,8,7,8,9]})
把a列的元素转换成list:
# 方法1df['a'].values.tolist() # 方法2df['a'].tolist()
把a列中不重复的元素转换成list:
df['a'].drop_duplicates().values.tolist()
输入一维dataframe:
df = pd.DataFrame([3, 5, 6, 2, 4, 6, 7, 8,
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列中包含的数据有
1. 建立一个DataFrame
C=pd.DataFrame({'a':['dog']*3+['fish']*3+['dog'],'b':[10,10,12,12,14,14,10]})
2. 判断是否有重复项
用duplicated( )函数判断
C.duplicated()
3. 有重复项,则可以用drop_duplicates()移除重复项
C.drop_duplicates()
4. Duplicated( )和drop_duplicates( )方法是以默认的方式判断全部的列(上面的例子中是看两个变量a和b是否都是重复出现)。
我们也可以对特定的列进行重复项判断
pandas读取一组数据,可能存在重复索引,虽然可以利用drop_duplicate直接删除,但是会删除重要信息。
比如同一ID用户,多次登录学习时间。要计算该用户总共‘’学习时间‘’,就要把重复的ID的‘’学习时间‘’累加。
可以结合groupby和sum函数完成该操作。
实例如下:
新建一个DataFrame,计算每个 id 的总共学习时间。其中 id 为one/two的存在重复学习时间。先利用 groupby 按照键 id 分组,然后利用sum()函数求和,即可得到每个id的总共学习时间。
以上这篇对DataFrame数据中的重复行,利用groupby累加合并的方法详解就是小编分享给大
2、数据框拼接(ignore_index=True,重新分配索引)
# 两种方式,concat、append皆可以
result3=pd.concat([result1,result2],ignore_index=True)
result3=result1.append(result2,ignore_index=...
可以使用 pandas 库中的 drop_duplicates() 方法来删除 dataframe 中的重复值。具体的代码如下:
df.drop_duplicates()
其中,df 是你的 dataframe 对象。这个方法会返回一个新的 dataframe,其中已经删除了重复的行。如果你想要在原 dataframe 上直接修改,可以加上 inplace=True 参数:
df.drop_duplicates(inplace=True)
numpy.stack()、np.row_stack()、np.column_stack()、 np.concatenate()、np.vstack()、np.hstack()的区别
TNTXG:
Tableau 七、多边形地图和背景图地图:设置地理信息(自定义地图码导入、设置地图源)
Brian_He_: