python数据分析基础2

基础python和pandas

1 读写CSV文件

一般的python方法

import sys

input_file = sys.argv[1]
output_file = sys.argv[2]
with open(input_file,'r',newline='') as filereader:
    with open (output_file,'w',newline='') as filewriter:
        header = filereader.readline()
        #获取列标题
        header = header.strip()
        header_list=header.split(',')
        print(header_list)
        #将列标题打印在屏幕上
        filewriter.write(','.join(map(str,header_list))+'\n')
        # map 函数将 str 函数应用于 header_list 中的每个元素,确保每个元素都是字符串
        # join 函数在 header_list 中的每个值之间插入一个逗号,将这个列表转换为一个字符串
        #在这个字符串最后添加一个换行符,最后写入文件中
        for row in filereader:
            row=row.strip()
            row_list=row.split(',')
            print(row_list)
            filewriter.write(','.join(map(str,row_list))+'\n')
        #将每一行数据都写入输出文件

pandas的dataframe方法

import pandas as pd

input_file = sys.argv[1]
output_file = sys.argv[2]
data_frame=pd.read_csv(input_file)
#pandas生成了一个数据框,类似于矩阵
print(data_frame)
data_frame.to_csv(output_file,index=False)

csv方法

import csv

input_file=sys.argv[1]
output_file=sys.argv[2]
with open(input_file,'r',newline='') as csv_in_file:
    with open (output_file,'w',newline='') as  csv_out_file:
        filereader = csv.reader(csv_in_file, delimiter=',')
        #使用csv模块中的reader函数创建了一个文件读取对象filereader
        # 后面的delimiter=','为分隔符,默认分隔符为','就不需要输入这个参数
        filewriter = csv.writer(csv_out_file, delimiter=',')
        # 使用csv模块中的writer函数创建了一个文件写入对象filewriter
        for row_list in filereader:
            print(row_list)
            filewriter.writerow(row_list)
            #使用filewriter对象的writerow函数来讲每行中的列表值写入输出文件

2 筛选特定的行

  • 行中的值满足某个条件
  • 行中的值属于某个集合
  • 行中的值匹配于某个模式(正则表达式)
2.1 行中的值满足某个条件

csv方法

import sys
import csv
input_file=sys.argv[1]
output_file=sys.argv[2]
with open(input_file,'r',newline='') as csv_in_file:
    with open (output_file,'w',newline='') as  csv_out_file:
        filereader = csv.reader(csv_in_file)
        filewriter = csv.writer(csv_out_file)
        header=next(filereader)
        #csv的next函数输入文件的第一行,赋给名为header的变量
        filewriter.writerow(header)
        for row_list in filereader:
            supplier=str(row_list[0].strip())
            #取出每行供应商的名称,并赋给名为supplier的变量
            cost=str(row_list[3].strip('$').replace(',',''))
            #取出每行数据中的成本,并去除¥符号,把数据中的','删除(替代为空值)
            if supplier==' Supplier Z' or float(cost) > 600.0:
                filewriter.writerow(row_list)

pandas方法

import pandas as pd
import sys
input_file = sys.argv[1]
output_file = sys.argv[2]
data_frame = pd.read_csv(input_file)
data_frame['Cost'] = data_frame['Cost'
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值