Python-Pandas-Excel/CSV 数据处理大全整理(学会了就更新)

import pandas as pd    # 导入pandas数据库     
import numpy as np     # 导入numpy数据库

1. 读取CSV文件:

路径=D:\python\数据FacAccountList_Outward_20210531.txt
df=pd.DataFrame(pd.read_csv(r'路径',sep='^'))   
    
    #  '^':是csv文件的分隔符;有的csv文件分隔符为‘,’ ,代码就标注sep=',' 作为分隔符。
    #  pd.DataFrame: 是为了将csv文件转换成类似Excel的二维表格,方便电脑读取
    #  r'':是直接将复制的路径供电脑读取,否则需手都将'\'改为'/'格式

2. 读取Excel文件:

路径=D:\python\数据FacAccountList_Outward_20210531.xlsx
df=pd.DataFrame(pd.read_evcel(r'路径',header=0)) 

# 以下数据代码均建立于将数据集设置为DataFrame的前提下

----------------------------------------------------------------------------

1. 读取并显示指定行:

print(df.iloc[7:9])            # 读取df中的第7-9行的所有数据
print(df.iloc[[0,2,3],:])          #读取df中的第1,3,4行的所有数据

2. 读取并显示指定列:

print(df['姓名'])            # 读取df中‘姓名’列的所有数据
print(df.iloc[:, 0])         # 读取df中首列的所有数据
print(df.iloc[:,:5])         # 读取df中前5列所有数据

3. 读取并显示指定列的指定行:

print(df.iloc[7:10, 36:41])          # 读取df中第7-9行中第37-41列的数据
print(df.iloc[[0,2,3],[2,4]])        # 读取df中第1、3、4行中第3和5列的数据
print(df.loc[[1,3,6],['姓名','价格']])  # 读取第2、4、7行“姓名”和“交易额”列的数据
print(df[:5][['姓名','价格']])        # 读取df中前5行“姓名”和“价格”列的数据

----------------------------------------------------------------------------------------------

1. 筛选满足1个条件的数据:

print(df[df['价格']<700])          # 筛选出df中“价格”列小于700的数值

2. 筛选满足多个条件的数据:

print(df[(df['价格']<300)&(df['产品']=='牛奶')])  # 筛选出df中“价格”列小于300 & “产品”列名为牛奶的数值

3. 筛选指定列包含某个字符串的数据:

print(df[df['国家代码'].str.contains('CN')])   # 筛选出df中的“国家代码”列中数据含字母“CN”的数据

4. 筛选指定列不包含某个字符串的数据:

print(df[df['国家代码'].apply(lambda x: not.str(x).startswith('CN'))])  # 筛选出df中的“国家代码”列中数据开头不是字母“CN”的数据

-----------------------------------------------------------------------------------------------

1. Lambda + 1个if 条件语句: 

将‘数值‘列 x>180 的数值标注为 ’非正常‘ ,其余的数值标注为 ‘正常’

df['数值']=df['数值'].apply(lambda x:'非正常' if x>180 else '正常')

2. Lambda + 多个if 条件语句:

将‘数值‘列 x>180 的数值标注为 ’非正常‘ ,180>x>0的数值标注为‘正常’,其余(即0>x)的数值标注为 ‘未到期’

df['数值']=df['数值'].apply(lambda x:'非正常' if x>180 else '正常' if x>0 else '未到期')

以上“Lambda+多个if条件语句”也可用普通多条件语句if、elif、else代替

for i in df['数值']:
    if i>180:
        print('非正常')
    elif i>0:
        print('正常')
    else:
        print('未到期')

-------------------------------------------------------------------------

数据替换:

1. 将df中所有数据‘abc’替换成‘A’

df.replace('abc','A',inplace=True)           # 添加inplace=True才会改变数据源的数据

2  将df中指定(‘字母’)列中的数据‘abc’替换成‘A’

df['字母'].replace('abc','A',inplace=True)        # 添加inplace=True才会改变数据源的数据

3. 将df中集合1中元素分别替换成集合2中元素:

集合1=['abc','def']
集合2=['A','B']
df.replace(集合1,集合2,inplace=True)     # 添加inplace=True才会改变数据源的数据 

4. 将df中指定(‘字母’)列中的数据‘abc’中的‘ab’替换成‘A’,最终显示为‘Ac’

df['字母']=df['字母'].str.replace('ab','A',inplace=True) 

---------------------------------------------------------------------------------------------------

在指定位置插入1列:

df.insert(3,'日期',20210630)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值