- dataframe添加列
- 删除行与列
- 去重
- 修改列
- 自定义函数
加载数据
import pandas as pd # 加载数据集 ./data/b_LJdata.csv df = pd.read_csv('./data/b_LJdata.csv').head(10) df
dataframe添加列
在后面追加
df['城市'] = '北京'
dfdf['区县'] = ['朝阳区', '朝阳区', '西城区', '昌平区', '朝阳区','朝阳区', '朝阳区', '西城区', '昌平区', '朝阳区'] dfdf['新价格'] = df['价格'] + 1000 df添加列 恢复df为初始十列
先获取区域索引 在区域后面一列插入城市
area_index = df.columns.get_loc('区域') print(area_index) df.insert(loc=area_index+1,column='区县',value=['朝阳区', '朝阳区', '西城区', '昌平区', '朝阳区','朝阳区', '朝阳区', '西城区', '昌平区', '朝阳区']) print(df)price_index = df.columns.get_loc('价格') print(price_index) df.insert(loc=price_index+1,column="新价格",value=df['价格']+1000) print(df)
删除行与列
删除默认删除行 不修改原始数据
源数据
copy_df = df.head().copy() copy_df删除索引为1 的这行数据 0 是按行删 不修改原始数据 new_df = copy_df.drop(labels=[1], axis=0, inplace=False) new_df删除索引为1和3的 这行数据 修改原始数据 copy_df = df.head().copy() new_df = copy_df.drop(labels=[1,3], axis=0, inplace=True) copy_df删除多列 修改原始数据 copy_df = df.head().copy() new_df = copy_df.drop(labels=['区域','地址','户型'], axis=1, inplace=True) print(new_df) print("==========================================") print(copy_df)
去重
dataframe去重
默认 对 所有列去重 keep为first 不影响原始数据
对 '户型', '朝向' 去重, 保留第一条, 不影响原始数据copy_df = df.head().copy() new_df = copy_df.drop_duplicates(subset=['户型', '朝向'], keep='first', inplace=False) print(new_df) print("===========================================") print(copy_df)对 '户型', '朝向' 去重, 保留最后一条, 影响原始数据copy_df = df.head().copy() new_df = copy_df.drop_duplicates(subset=['户型', '朝向'], keep='last', inplace=True) print(new_df) print("===========================================") print(copy_df)对 '户型', '朝向' 去重, 删除所有重复数据, 影响原始数据copy_df = df.head().copy() new_df = copy_df.drop_duplicates(subset=['户型', '朝向'], keep=False, inplace=True) print(new_df) print("===========================================") print(copy_df)Series去重
默认保留第一条 不修改原始数据
对 朝向 构成的 Series对象 去重, 保留最后一条, 不影响原始对象copy_df = df.head().copy() new_series = copy_df['朝向'].drop_duplicates(keep='last', inplace=False) print(new_series) print("===========================================") print(copy_df['朝向'])对朝向 构成的 Series对象 去重, 删除所有重复, 不影响原始对象copy_df = df.head().copy() new_series = copy_df['朝向'].drop_duplicates(keep=False, inplace=False) print(new_series) print("===========================================") print(copy_df['朝向'])对 朝向 构成的 Series对象 去重, 保留第一条, 影响原始对象copy_df = df.head().copy() new_series = copy_df['朝向'].drop_duplicates(keep='first', inplace=True) print(new_series) print("===========================================") print(copy_df['朝向'])
修改列
标签:朝向,df,inplace,基础知识,-----------------------,print,new,copy,Pandas From: https://blog.csdn.net/weixin_54353942/article/details/142467154加载数据
import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35]} df = pd.DataFrame(data) df第一行age列修改为30
df.loc[0, 'Age'] = 30 df# 也可以使用条件赋值来修改部分值 # df['Name']=='Bob' df.loc[df['Name']=='Bob', 'Age'] = 66 dfdf['Name'].replace(to_replace='Alice', value='Alice_new', inplace=True) df #法二 # df['Name'] = df['Name'].replace(to_replace='Alice', value='Alice_new', inplace=False) # df# 将 Age 列中小于 31 的值改为 29 df['Age'].where(df['Age']>=31, 29, inplace=True) dfdf['Age'].mask(df['Age']>=30, 66, inplace=True) df案例
import pandas as pd # 加载数据集 ../data/b_LJdata.csv df = pd.read_csv('./data/b_LJdata.csv') df copy_df = df.head().copy() print('============修改前===================') print(copy_df) # copy_df.loc[0, '价格'] = 8000 # copy_df.iloc[0, 4] = 8000 price_index = df.columns.get_loc('价格') copy_df.iloc[0, price_index] = 8000 print('价格下标: ', price_index) print('============修改后===================') print(copy_df)