weixin_46617641 2022-04-21 02:34 采纳率: 92.3%
浏览 351
已结题

pandas读取csv并写入新的一列

问题遇到的现象和发生背景

1.将q写入dataframe的时侯结果怎么变成[1,3]的形式,第二个截图中可以看到写入的是[1,[3]]
2.将dataframe保存到csv文件里的时候,为什么会出现[1, array([3.])](如图3),怎么才能出现[1,3]

问题相关代码,请勿粘贴截图
import numpy as np
import pandas as pd
import csv

from pandas import DataFrame
data = pd.read_csv("C:/Users/DELL/Desktop/dt3.csv", header=0, usecols=['v'])
data = np.array(data)
T=[] #定义为列表
V=0   #初始成交量
h=0
h=[]
τ=[]
A=326881602  #每个交易篮子的交易量
for i in range(len(data)):
    V=V+data[i]   #迭代,成交量=上一时刻成交量+这一时刻的成交量
    k=np.ceil(V/A)  #对篮子数向上取整
    T.append(k)
    T[i]=k    #第i时刻所需要的篮子数
    h.append(0)
    h[i]=0
    if np.ceil(V/A)-V/A==0:  #篮子数为整数
        h.append(1)
        h[i]=1  # p[i]=1#如果篮子数为整数,那么下一时刻从新的交易篮子开始填充
    τ.append(T[i])
    τ[0]=[1,T[0]]  #第一个时刻对应的篮子编号
for i in range(len(data)):
    if i>=1:
        τ[i] = [T[i - 1] + h[i - 1], T[i]]

#将q写入dataframe
filepath = 'C:/Users/DELL/Desktop/dt3.csv'
dataheader = ['date','time','v','p','cum']
data_original = pd.read_csv(filepath, sep=',' ,header=0, names=dataheader, skip_blank_lines=True)
print(data_original)

# data_original['q']=list(q)#也可行
data_original['τ']=τ #添加一列τ,赋值为列表(d),打印
print(data_original)
#完成写入

t=data_original['τ']

#保存
sourceFile='C:/Users/DELL/Desktop/dt3.csv' #person.csv包括id,name,age三个列
df=pd.read_csv(sourceFile,low_memory=False) #读取csv,设置low_memory=False防止内存不够时报警告
df['a']=list(t)
# df['a']='company'#增加新的列company
#以下保存指定的列到新的csv文件,index=0表示不为每一行自动编号,header=1表示行首有字段名称
df.to_csv('C:/Users/DELL/Desktop/dt3.csv',columns=['date','time','v','p','cum','a'],index=0,header=1)
运行结果及报错内容

img

img

img

图1是原文件,图2是新增了τ这一列的结果,图3是将dataframe写入csv以后的结果

我的解答思路和尝试过的方法
我想要达到的结果

将图2[1,[3]]改成[1,3]。
将图3的[1, array([3.])]换成[1,3]

展开全部

  • 写回答

2条回答 默认 最新

  • 不会长胖的斜杠 后端领域新星创作者 2022-04-21 03:01
    关注

    改成
    τ[0]=[1,int(list(T[0])[0])]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月21日
  • 创建了问题 4月21日

悬赏问题

  • ¥15 python 用Dorc包报错,我的写法和网上教的是一样的但是它显示无效参数,是什么问题
  • ¥15 指定IP电脑的访问设置
  • ¥30 matlab ode45 未发现警告,但是运行出错
  • ¥15 vscode platformio
  • ¥15 代写uni代码,app唤醒
  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部