
python使用归纳
文章平均质量分 76
fire2fire2
这个作者很懒,什么都没留下…
展开
-
pandas tips汇总
pandas中DataFrame 数据合并,连接(merge,join,concat):https://blog.youkuaiyun.com/qq_41853758/article/details/83280104Pandas之drop_duplicates:去除重复项:https://blog.youkuaiyun.com/u010665216/article/details/78559091原创 2021-01-20 20:57:07 · 255 阅读 · 2 评论 -
dataframe将某一列变为日期格式, 按日期分组groupby,获取groupby后的特定分组, 留存率计算
1.将某一列变为日期格式df_dispatch['Datetime'] = pd.to_datetime(df_dispatch['day'], format="%Y/%m/%d")2.按日期分组groupbydf_group_dispatch=df_dispatch.groupby('Datetime')df_group_dispatch.day.describe()3.获取特定日期2020-10-01分组后的某一列内容(此处以uid为例)begin = datetime.原创 2020-12-16 15:32:28 · 3287 阅读 · 0 评论 -
求多个array的交集(共有数据)
3个array分别为a1,a2,a3.a1=df1.uid.unique()a2=df2.uid.unique()a3=df3.uid.unique()1.求交集的数量len(set(a1) & set(a2) & set(a3))2.求交集内容print(set(a1) & set(a2) & set(a3))原创 2020-12-16 15:10:23 · 488 阅读 · 0 评论 -
pandas保存结果到CSV/TXT(dataframe/array)
1.dataframe保存到CSV文件df.to_csv('test1.csv')2.array保存到TXT文件此处的array是df.uid.unique(),保存为整数形式,分隔符为‘,’np.savetxt('unique_uid.txt', df.uid.unique() ,fmt="%d", delimiter=",")...原创 2020-12-16 14:54:12 · 1224 阅读 · 0 评论 -
dataframe动态命名(读取不同文件并规律命名)
读取不同的10个文件到dataframe,并需要分别命名为df_10,df_10_20,以此类推。arr=['10','10_20','20_30','30_50','50_70','70_90','90_100']csv_paths存储文件位置。定义一个字典d,具体如下:d={}for csv_path,name in zip(csv_paths,arr): filename="df" + name d[filename]=pd.read_csv('%s' % cs...原创 2020-12-16 12:32:40 · 3079 阅读 · 0 评论 -
按指定范围对dataframe某一列做划分
1、用binsbins=[0,450,1000,np.inf] #设定范围df_new=df.groupby(pd.cut(df['money'],bins)) #利用groupby2、利用多个指标进行groupby时,先对不同的范围给一个级别指数,再划分会方便一些def to_money(row): #先利用函数对不同的范围给一个级别指数 if row.money<= 450: return 1 elif (row.money <= 1000)...原创 2020-12-16 11:30:42 · 2777 阅读 · 0 评论 -
按照指定上下限限定dataframe某一列的数据 clip
对一个列进行筛选df_valid['new']=df_valid['old'].clip(0,60000)对多个列名相似有规律的列进行筛选for i in range(1,8): name1='stuck_time'+str(i) name2='stuck_count'+str(i) df_valid[name1]=df_valid[name1].clip(0,60000) df_valid[name2]=df_valid[name2].clip(0,90)...原创 2020-12-15 17:01:53 · 510 阅读 · 0 评论 -
datafame增加一列 值为其他列计算的结果
df_valid增加一新列watch_rate,值为df_valid每一列的watch_time值除以df_valid相应列的totalTime值df_valid['watch_rate']=1-df_valid.watch_time/df_valid.totalTime原创 2020-12-15 16:46:57 · 1384 阅读 · 0 评论 -
将dataframe某一列转换为数字格式(object类型转换为数字类型)
当读入文件后,dataframe某一列的数据类型为object,想要转换为数字类型(float)df_valid["time"] = pd.to_numeric(df_valid["ime"],errors='coerce')原创 2020-12-15 16:42:43 · 18353 阅读 · 0 评论 -
读取没有列名的csv/txt文件,并重设列名
filepath='E:/jupyter_notebook/csv/all'filename=filepath+'/test'pathname=filepath+'/columns_name.txt'读取没有列名的csv/txt文件,并重设列名1、先设置header=None,否则会自动把第一列数据作为列名dfpath=pd.read_table('%s' % pathname, low_memory=False,header=None)2、重新设置列名columnsdfpath.col原创 2020-12-15 16:36:43 · 7291 阅读 · 0 评论 -
dataframe某列满足特定值的数量
dataframe某列满足特定值的数量1. df[df["val"]==0].id.count()2. len(df[df["val"]==0])原创 2020-12-15 16:20:27 · 7870 阅读 · 0 评论 -
dataframe某一列的去重值及数量
dataframe某一列的去重值及数量dataframe某一列的去重值df["uid"].unique()dataframe某一列的去重值的个数len(df["uid"].unique())原创 2020-12-15 16:18:18 · 7618 阅读 · 0 评论 -
多个特定条件筛选dataframe得到新的dataframe
多个特定条件筛选dataframe得到新的dataframeeg1:df_valid = df[( (df.a == 0) & (df.b == 0) & (df.c != 0) & (df.d > 24))].copy()eg2:筛选列a的非空值df_tmp = df_valid[df_valid['a'].notnull()].copy()...原创 2020-12-15 16:07:34 · 1191 阅读 · 0 评论 -
pthon定义函数并apply到dataframe的特定列
pthon定义函数并apply到dataframe的特定列1.函数定义def total_time_fn(row): if row.frameplay < 24: return 0 elif (row.total_time == 60): return 60 return int(row.total_time%60)2.应用到dataframe的特定列df["totalTime"] = df.apply(total_time_fn...原创 2020-12-15 16:02:24 · 288 阅读 · 0 评论 -
使用多列对dataframe进行排序
使用多列对dataframe进行排序df.sort_values(['uid', 'time_stamp', 'sid'], ascending = [True, True, True], inplace=True) #排序列名及升序降序选择df = df.reset_index() #index重新set一下原创 2020-12-15 15:57:24 · 334 阅读 · 0 评论 -
pandas读取多个文件并合并到一起
pandas读取多个文件并合并到一起先把文件位置放到一起,读取文件,再concat。subdir=‘store’file_names = []#存文件名file_names.append(test1.csv')#继续添加文件名csv_paths = []#存文件位置for file_name in file_names: csv_path = join( '..','csv', subdir, file_name)#文件位置 csv_paths.append(csv_pa...原创 2020-12-15 15:51:04 · 5786 阅读 · 1 评论