python对csv的读写操作

import pandas as pd


# 读取第一行(表头)
head_row = pd.read_csv('all_consumer_bill_detailed_local_bk.csv', encoding='gb18030', nrows=0)
print(head_row)
# 表头行转为 list
head_row_list = list(head_row)

# 读取第一列
col1 = pd.read_csv('all_consumer_bill_detailed_local_bk.csv', encoding='gb18030', usecols=[0])
print(col1)

# 读取csv,encoding方式主要是UTF-8和GBK
df = pd.read_csv('all_consumer_bill_detailed_local_bk.csv', encoding='gb18030')
# print(f"行读取结果:{df.values}")

# 找出第3行
row3 = df.iloc[2,:]
print(row3)

# 找出第2列
col2 = df.iloc[:, 1]
print(col2)

# 找出前两列,全部行
row_col = df.iloc[:, :2]
print(row_col)

# 按照列名查找某一列
tel = df['telephone']
print(tel)
# 按照列名查找某几列
tel_city = df[['telephone', 'province', 'city']]
print(tel_city)


# 单条件查询
# 找出telephone大于1800000000的行,所有列
aaa = df.loc[df['telephone'] > 18000000000]
# 找出telephone大于1800000000的行,中的hospital_name,owner这两列
bbb = df.loc[df['telephone'] > 18000000000, ['hospital_name', 'owner']]

# 多条件查询
# 找出telephone大于1800000000,并且province在四川的行,要hospital_name,owner这两列
ccc = df.loc[(df['telephone'] > 18000000000) & (df['province'] == '四川'), ['hospital_name', 'owner']]

# 存储结果文件
ccc.to_excel('ccc.xlsx')
ccc.to_csv('ccc.csv')

常用的pandas读取csv,读取表头,然后使用表头读取csv内容的方法:

# read csv
    csv_file = r"摆位1000.csv"
    head_row = pd.read_csv(csv_file, nrows=0)
    head_row_list = list(head_row)
    csv_results = pd.read_csv(csv_file, usecols=head_row_list, encoding='GBK')
    row_list = csv_results.values.tolist()

    result_list = []
    for i, item in enumerate(row_list):
        print("{}/{}行读取结果:{}".format(i, len(row_list), item))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值