Python将列表中的数据写入csv并正确解析出来

用Python做数据处理常常会将数据写到文件中进行保存,又或将保存在文件中的数据读出来进行使用。通过Python将列表中的数据写入到csv文件中很多人都会,可以通过Python直接写文件或借助pandas很方便的实现将列表中的数据写入到csv文件中,但是写进去以后取出有些字段会有变化有些坑还是要避免。本文通过实例来介绍如何将列表中的数据写入文件如csv并正确解析出来使用。

示例数据如下:

data = [['John', '25', 'Male',[99,100,98]],
        ['Emily', '22', 'Female',[97,99,98]],
        ['Michael', '30', 'Male',[97,99,100]]]

通过pandas将数据写入csv

import pandas as pd
df = pd.DataFrame(data,columns=['Name', 'Age', 'Gender','Score'])
filename = 'data\pd_data.csv'
df.to_csv(filename, index=False)
df

在这里插入图片描述

我们对原始的数据中的分数Score字段进行求和统计总分TotalScore

df['TotalScore']=df['Score'].apply(sum)
df

在这里插入图片描述

通过pandas将csv文件中的数据读出

用pandas将csv文件将数据读出也是非常方便的一行代码就可以搞定

df_read_csv=pd.read_csv(filename)
df_read_csv

在这里插入图片描述

但是会发现从csv文件中读出数据后形成的dataframe数据集对数据中的分数Score字段进行求和统计总分TotalScore会报错!

df_read_csv['TotalScore']=df_read_csv['Score'].app

TypeError: unsupported operand type(s) for +: 'int' and 'str'

原因是原数据中Score字段中的数据是list但是报错至文件读出来后这个字段变成了字符串,字符串不能求和。

解决方案
将字段中为字符串的值进行转换,转换成list,numpy提供了string转list的方法,当然也可以自己写。

import numpy as np
def makeArray(text):
    #return [int(item) for item in text[1:-1].split(',')]  #将字串转换成列表
    return np.fromstring(text[1:-1], sep=',')  #用numpy提供的方法将字串转换成列表

df_read_csv['Score']=df_read_csv['Score'].apply(makeArray) #将Score由字符串转成列表
df_read_csv['TotalScore']=df_read_csv['Score'].apply(sum)
df_read_csv

在这里插入图片描述

可以看到这下Score字段可以正常的进行求和统计总分TotalScore了。


博客地址:http://xiejava.ishareread.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/250316.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

苹果计划将全球1/4的IPhone产能转移至印度

KlipC报道:据相关人士报道,苹果希望在未来2到3年内每年在印度生产超过5000万部iphone,要是该计划得以实现,印度将占领全球iPhone产量的四分之一。 KlipC的分析师Alex Su表示:“此次iPhone15推出是苹果印度制造计划的一…

Initial用法-FPGA入门3

Initial是什么 FPGA Initial是一种在FPGA中进行初始化的方法。在FPGA设备上,初始值决定了逻辑门的状态和寄存器的初始值。FPGA Initial可以通过设置初始值来控制电路在上电后的初始状态。 Initial的作用 2.1,控制电路启动时的初始状态 通过设置FPGA Ini…

XXE利用的工作原理,利用方法及防御的案例讲解

XXE(XML外部实体注入)利用是一种网络安全攻击手段,其中攻击者利用XML解析器处理外部实体的方式中的漏洞。这种攻击主要针对的是那些使用XML来处理数据的应用程序,尤其是当这些应用程序没有正确限制外部实体的处理时。通过XXE利用&…

小程序接口OK,桌面调试接口不行

手机小程序OK,桌面版出现问题; 环境:iis反向url的tomcat服务,提供接口。 该接口post了一个很大的数组,处理时间比较久。 1)桌面调试出现错误,提示 用apipost调用接口同样出错, 502 - Web 服务器在作为网关或代理服…

VS2022配置C++ 20解决import std报错

C 20新特征支持用import std来导入std模块,如下: 配置时主要有两个步骤: (1)项目--属性--常规--C语言标准--预览 - 最新 C 工作草案中的功能 (/std:clatest) 注意选择ISO C20 标准 (/std:c20)也不能正常使用&#xf…

一个程序,实现随机随机数据生成自由

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 发现又是好久没有和大家见面了,先给大家分享一下最近的研究方向和成果: 最近接到的…

GEM5 McPAT NoC教程: xml设置汇总-2023版

简介 McPAT的xml有一些参数需要设置,noc的部分很多Gem5ToMcpatparser没有设置,也没有给出如何设置的条件。尤其是和活动相关的total access,不知道具体怎么设置,也不知道如何从gem5 stats.txt中导出。本文提供了2023年的收集到ge…

听GPT 讲Rust源代码--src/tools(14)

File: rust/src/tools/rust-analyzer/crates/cfg/src/lib.rs 在Rust源代码中,rust/src/tools/rust-analyzer/crates/cfg/src/lib.rs这个文件是Rust语言分析器(Rust Analyzer)的一部分,用于处理和管理条件编译指令(Cond…

debug点f8step over会进入class文件

File->settings->Bulid.Executiong.Deployment->Debugger->Stepping 取消如图对钩即可

python 实现PC、app自动化全过程(包括CI\CD)

python main.py allure generate C:\devlopePath\new_nergeryApp_auto\reports -o C:\devlopePath\new_nergeryApp_auto\result --clean allure open C:\devlopePath\new_nergeryApp_auto\result

Qt实现中英文切换步骤

本demo的开发环境是vs2015qt5.9.4。以下是已有的工程下,增加中英文切换的功能(当然还可以多语言切换)。 1,选中工程(记得一定要选中,否则Create New Translation File 是灰色的)。点击Create N…

2024中国国际大数据产业博览会年度主题征集公告

2024中国国际大数据产业博览会年度主题征集公告 中国国际大数据产业博览会(以下简称数博会),是全球首个以大数据为主题的国家级博览会,由国家发展和改革委员会、工业和信息化部、国家互联网信息办公室和贵州省人民政府共同主办&am…

用代码写uml并在线生成uml图

可以用PlantUml写uml,并在线生成uml图。 startuml start:登录系统; if (用户名和密码正确?) then (yes):进入系统首页;:展示主菜单; else (no):显示登录错误;stop endif:选择模块; partition "课程信息" {:查看课程列表;:查看课程详情; } partition "课程签到…

vue整个页面可以拖拽导入文件

效果图 原理与源码 我们这里的思路是用ant组件库的upload组件,就是如下这个 用这个包裹住所有页面,你可以是包裹住App.vue,或者是你的homepage。但是这个涉及到一个问题,就是我们现在确实是可以拖拽导进来文件了,但是…

vscode报错cnpm : 无法加载文件 C:\Program Files\nodejs\cnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅

报错 打开powershell 执行 Start-Process powershell -Verb runAs set-ExecutionPolicy RemoteSigned 选择 Y 完成

基于ssm旅游景点管理系统设计论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本旅游景点管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

统一大语言模型和知识图谱:如何解决医学大模型-问诊不充分、检查不准确、诊断不完整、治疗方案不全面?

统一大语言模型和知识图谱:如何解决医学大模型问诊不充分、检查不准确、诊断不完整、治疗方案不全面? 医学大模型问题如何使用知识图谱加强和补足专业能力?大模型结构知识图谱增强大模型的方法 医学大模型问题 问诊。偏离主诉和没抓住核心。…

电商淘宝爬虫API与淘宝官方开放平台API的区别以及如何选择适合自己的API接口

随着数字化时代的到来,数据已经成为企业竞争力的重要因素。为了获取数据,企业或个人常常需要使用API接口。常见的API接口包括爬虫API和官方开放平台API。本文将详细介绍这两种API接口的区别以及如何选择适合自己的API接口。 一、爬虫API与官方开放平台A…

Leetcode—2415.反转二叉树的奇数层【中等】

2023每日刷题(六十) Leetcode—2415.反转二叉树的奇数层 BFS的C实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(n…

Day62力扣打卡

打卡记录 统计区间中的整数数目(动态开点线段树) 链接 class CountIntervals:__slots__ left, right, l, r, cntdef __init__(self, l1, r10 ** 9):self.left self.right Noneself.l, self.r, self.cnt l, r, 0def add(self, l: int, r: int) ->…