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