Dataframe以及简单数据处理的操作合集(随手记版)

1. 普通的筛选数据

# 筛选年龄小于27岁的df数据
df[df['age'] < 27] 

# 筛选年龄等于27岁的df数据
df[df['age'] == 27]   

# 筛选年龄小于等于27岁的df数据
df[df['age'] <= 27] 

2. 两个df 拼接

import pandas as pd

# 创建两个示例 Dataframe
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]})

# 按列拼接 Dataframe
result = pd.concat([df1, df2], axis=1)

3.dataframe 转json

import pandas as pd

# 创建一个示例 Dataframe
df = pd.DataFrame({'A': [1, 2, 3], 'B': ['foo', 'bar', 'baz']})

# 将 Dataframe 转换为 JSON
# orient 有多种形式
json_data = df.to_json(orient='records')

 4.dataframe的第一列作为key值,第二列作为value值

import pandas as pd

df = pd.DataFrame({'key': ['A', 'B', 'C'],
                   'value': [1, 2, 3]})

my_dict = df.set_index('key')['value'].to_dict()

 5. df中可能会出现要去除list字段中的引号、空格等情况

data = [['"value1"', '"value2"'], ['"value3"', '"value4"']]

# 去掉双引号
cleaned_before_data = [[element.strip('"') for element in sublist] for sublist in data ]

# 去除不必要的空格
cleaned_after_data = [[element.strip() for element in sublist] for sublist in data ]

6. 跳出两层循环

for i in range(10):
    for j in range(10):
        # 某个条件满足时,跳出两层循环
        if condition:
            break_flag = True
            break
    if break_flag:
        break

 7. df 需要筛选两个条件 或 语句

df = df[(df_new[str1] == 'OFF') | (df[str1] == 'OFF')]

8. 封装的接口,用于用户自己设定的比较符号,去筛选的数据的方法

def check_filter_value(set_filter, test_data_value, set_value, df):
    # 根据用户设定的filter的值,将用户设置的值与待测数据的值进行筛查
    # set_filter是符号,可以是'>','<','=','>=','<='
    # test_data_value 是df的某一列值
    # set_value 是数值
    # 返回筛选后的整个df
    
    operators = {
        '>': test_data_value > set_value,
        '<': test_data_value < set_value,
        '=': test_data_value == set_value,
        '>=': test_data_value >= set_value,
        '<=': test_data_value <= set_value
    }
    # 全是满足要求的数据
    if operators[set_filter].all():
        return df
    # 不全是满足要求的数据,有False值
    else:
        # 添加新列 df['temp']
        df = df.assign(temp=operators[set_filter])
        # 取得数据为True的列
        df = df.loc[df_data['temp']]
        df = df.drop(['temp'], axis=1)
        return df

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值