数据帧(DataFrame)是二维数据结构,即数据以行和列的表格方式排列。
数据帧(DataFrame)的功能特点:
潜在的列是不同的类型大小可变标记轴(行和列)可以对行和列执行算术运算
https://www.yiibai.com/pandas/python_pandas_dataframe.html
ssss
DataFrame 某一列字母转大写
1 | df['列名'] = df['列名'].str.upper() |
DataFrame 按指定字符串拼接两列:df.concat
1 | df3 = pd.concat([df1['cosine'],df1['couple_product_id'].str.split('_', expand=True)], axis=1) |
DataFrame 对列重命名 :df.rename
1 | df3.rename(columns={0:'product_id_a', 1:'product_id_b'}, inplace=True) |
DataFrame 取某些列
1 | df5 = df2[df2['product_id'].isin(random_sample_b)] |
DataFrame 删除某些列
1 | df4 = df4.drop(columns=['sku_code', 'bundleproduct_main_sku']) |
DataFrame 按条件取行
选取等于某些值的行记录 用 ==
1
df.loc[df[‘column_name’] == some_value]
选取某列是否是某一类型的数值 用 isin
1
df.loc[df[‘column_name’].isin(some_values)]
多种条件的选取 用 &
1
df.loc[(df[‘column’] == some_value) & df[‘other_column’].isin(some_values)]
选取不等于某些值的行记录 用 !=
1
df.loc[df[‘column_name’] != some_value]
isin返回一系列的数值,如果要选择不符合这个条件的数值使用~
1
df.loc[~df[‘column_name’].isin(some_values)
DataFrame 横向对应拼接
1 | df389 = pd.merge(df38, df9, how='left', on='product_b') |
DataFrame 求某列均值
1 | df[col].mean()) |
DataFrame 筛选某列为指定值的数据
1 | Df1 = df1[df1['A'].isin([1])] |
DataFrame 前一个和后一个词组成元组
1 | [(word[i],word[i+1]) for I in range(len(words)-1)] |
DataFrame merge报错 不同类型不能merge
1 | base_df['article_id'] = base_df['article_id'].apply(int) |
DataFrame drop_duplicates()删除重复行
1 | df389_Lancome = df389_Lancome.drop_duplicates() |
DataFrame 直接新增列
1 | data['d'] = [5,6] |
DataFrame 读取csv 设置数据类型
1 | df = pd.read_csv("somefile.csv", dtype = {'column_name' : str}) |
DataFrame 筛选多项条件
1 | some = all_data[(all_data['User_id'] == 1439408) & (all_data['Date'].isna())] |
DataFrame 取某行某列的value
1 | [pd.at][i,‘j’] |
DataFrame 填充空值的方法
1 | df3_sum_MakeUp_Fragrance_Oil.fillna(value=0) |
DataFrame 根据某列排序
1 | df.sort_values(by=['col1'],na_position='first')) |
DataFrame 计算pd每一列的均值
1 | for col in df.columns: |
DataFrame 取dataframe特定行/列
DataFrame 设置某列数据保留两位小数
1 | data[u'线损率'] = data[u'线损率'].apply(lambda x: format(x, '.2%')) |
DataFrame 统计某一列中各值出现的次数
1 | df_train.loc[:,'label'].value_counts() |
DataFrame 对象列的最大值、最小值、平均值、标准差、中位数
1 | df.sum() 求和 |
DateFrame新增一列
1 | data['c'] = '' |
DataFrame 删除指定列空值的行
1 | df1 = df1.dropna(subset=["豆瓣评分","评分人数"]) |
DataFrame 字符串拼接
1 | df_session01['user_id'] = df_session01['user_id'].apply(str) |