数据处理 DataFrame

数据帧(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
2
3
Df1 = df1[df1['A'].isin([1])]

df1[df1['A'].isin([1])] 选取df1中A列包含数字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
2
3
4
5
data['d'] = [5,6]
append 新增行
res = pd.DataFrame(columns=('lib', 'qty1', 'qty2'))
res = res.append([{'qty1':10.0}], ignore_index=True)
items_a = df9['product_id_a'].to_list()

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
2
[pd.at][i,‘j’]
pd.loc[i,j] = value

DataFrame 填充空值的方法

1
2
3
df3_sum_MakeUp_Fragrance_Oil.fillna(value=0)
df.fillna(method='pad',axis=0) # 用前一行的值填充
df.fillna(method='backfill',axis=1) # 用后一列的值填充

DataFrame 根据某列排序

1
df.sort_values(by=['col1'],na_position='first'))

DataFrame 计算pd每一列的均值

1
2
for col in  df.columns:
print("该列数据的均值位%.2f" %df[col].mean()) #计算每列均值

DataFrame 取dataframe特定行/列

DataFrame 设置某列数据保留两位小数

1
data[u'线损率'] = data[u'线损率'].apply(lambda x: format(x, '.2%'))

DataFrame 统计某一列中各值出现的次数

1
df_train.loc[:,'label'].value_counts()

DataFrame 对象列的最大值、最小值、平均值、标准差、中位数

1
2
3
4
5
6
df.sum() 求和
Df.max() 最大值
Df.mix() 最小值
Df.std() 标准差
Df.decribe() 数据的详细信息
25%,50%,75%就是将列内的数值由小到大排列并分成四等份,处于25%、50%、75%三个分割点位置的数值

DateFrame新增一列

1
data['c'] = ''

DataFrame 删除指定列空值的行

1
df1  = df1.dropna(subset=["豆瓣评分","评分人数"])

DataFrame 字符串拼接

1
2
3
df_session01['user_id'] = df_session01['user_id'].apply(str)
df_session01['session_id'] = df_session01['session_id'].apply(str)
df_session01['user_id_session'] = df_session01['user_id'].str.cat(df_session01['session_id'],sep="_")

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2024 HELLO WORLD All Rights Reserved.

UV : | PV :