python - 连接到excel时使用Pandas将CSV数据转换为数字
问题描述
我正在编写一个小程序来连接来自多个 csv 文件的大量测量值。成一个excel文件。我已经编写并运行了几乎所有程序,我唯一要做的就是从 csv 文件中获取数据,以便在数据框将它们放入 excel 文件时自动转换为数字。我的代码如下所示:
from pandas import DataFrame, read_csv
import matplotlib.pyplot as plt
import pandas as pd
import os
import csv
import glob
os.chdir(r"directoryname")
retval = os.getcwd()
print ("Directory changed to %s" % retval)
files = glob.glob(r"directoryname\datafiles*csv")
print(files)
files.sort(key=lambda x: os.path.getmtime(x))
writer = pd.ExcelWriter('test.xlsx')
df = pd.read_csv("datafile.csv", index_col=False)
df = df.iloc[0:41, 1]
df.to_excel(writer, 'sheetname', startrow =0, startcol=1, index=False)
for f in files:
i+=1
df = pd.read_csv(f, index_col=False)
df = df.iloc[0:41,2]
df.to_excel(writer, 'sheetname', startrow=0, startcol=1+i, index=False)
提前致谢
解决方案
你的意思是:
df.loc[:,'measurements'] = df.loc[:,'measurements'].astype(float)
因此,当您阅读数据框时,您可以像这样转换所有列。
不同的解决方案是,在读取 csv 以使用 dtypes 转换列时(请参阅文档)
例子
df = pd.read_csv(os.path.join(savepath,'test.csv') , sep=";" , dtype={
ID' : 'Int64' , 'STATUS' : 'object' } ,encoding = 'utf-8' )
推荐阅读
- python-3.x - SessionNotCreatedException:消息:会话未从断开连接创建:无法使用 ChromeDriver 2.45 Chrome v71 连接到渲染器
- node.js - use cheerio to get a list of attributes
- php - Composer 更新缺少扩展 ext-apache *
- swift - 在树莓派上运行 Swift
- google-app-maker - Emailing incomplete PDF rather than PDF with written data
- javascript - 简单的 .hide Jquery 脚本
- c# - 如何从 bool 转换为 int?
- https - node-red requireHttps does not work, accessing http does not redirect to https
- babeljs - 将 babel-preset-react-app 与 @babel/register 一起使用
- datatable - how to add action with html button in laravel datatables 8.*