Some of the operations dataframe

09-dataframe modify operation

import pandas as pd

# 加载数据
data = pd.read_excel("./users.xlsx")
print('data:\n', data)
print('data 的列索引;\n', data.columns)

# 将age  修改18岁
# data.loc[:, 'age'] = 18

# 将sex  为 男 全部 改为 女
# bool_index = data.loc[:, 'sex'] == '男'
#
# data.loc[bool_index, 'sex'] = '女'

# 将 age 为偶数的年龄 改为 18岁
bool_index = data.loc[:, 'age'] % 2 == 0

data.loc[bool_index,'age'] = 18

print('data:\n', data)

10-dataframe deletion

import pandas as pd

# 加载数据
data = pd.read_excel("./users.xlsx")
print('data:\n', data)
print('data 的列索引:\n', data.columns)

# drop --删除
# labels --指定删除的列名称列表、行名称列表
# axis ---如果为0,删除行; 如果为1,删除列
# inplace --- 如果True,直接对原df产生影响;如果为False,不会原df产生影响,返回删除的结果供我们查看
# data.drop(labels=['sex', 'age', 'address', 'poo'], axis=1, inplace=True)
# res = data.drop(labels=['sex', 'age', 'address', 'poo'], axis=1, inplace=False)
#
# print('data:', data.shape)
# print('res:', res.shape)

# 删除指定的行
# data.drop(labels=[i for i in range(50)], axis=0, inplace=True)
# print('data:\n',data.shape)


# 按照指定条件进行删除
# 删除年龄为偶数的行
# bool_index = data.loc[:, 'age'] % 2 == 0
#
# labels = data.loc[bool_index, :].index
#
# # 删除 年龄为偶数 的行
# data.drop(labels=labels, axis=0, inplace=True)
# print('data', data.shape)
# print('data;\n',data)


# 保留法
# --保留年龄 非偶数的 行
bool_index = data.loc[:, 'age'] % 2 != 0

data = data.loc[bool_index,:]
print('data:\n',data)
print('data:\n',data.shape)

11-dataframe deduplication operation

import pandas as pd

"""
如果所有样本--某一个特征 值 全部相同,---该特征对于我们最终的结果影响是相同的
"""
# 判断 是否该特征所有的值 都是相同的?

# 加载数据
data = pd.read_excel('./meal_order_detail.xlsx')
print('data:\n', data)
print('data 的列索引:\n', data.columns)
print('*' * 100)
# df.drop_duplicates()

# subset --指定去重的列的名称
# keep='first' --去重的时候保留出现的第一个
# inplace --如果True,直接对原df产生影响;如果为False ,会返回一个去重之后的结果,供我们查看
# res = data.drop_duplicates(subset='cost', inplace=False)
# print('res:\n', res)

drop_list = []

# 剔除 data 中的列--所有值 都相同的列
for column in data.columns:
    # 按照每一列都进行去重
    res = data.drop_duplicates(subset=column, inplace=False)
    if res.shape[0] == 1:
        drop_list.append(column)

print('drop_list:\n', drop_list)

# 删除 值相同的列
data.drop(labels=drop_list, axis=1, inplace=True)

print('删除值相同的列的结果为:\n',data)
print('删除值相同的列的结果为:\n',data.shape)
Published 128 original articles · won praise 24 · views 4259

Guess you like

Origin blog.csdn.net/return_min/article/details/103915658