我一直试图使用熊猫将日期解析为来自csv的字符串。
我在这里试图实现的是提取一行(从csv),其中包含两种类型的数据,字符串和整数。
从这里开始,我想使用docx-mailmerge来生成Microsoft报告。
对于上下文,我在这里指的是解决方案时,找出:datetime dtypes in pandas read_csv
谢谢。
下面是我正在犯的错误:
ValueError:带有基10:'Num'的int()无效文本
这是我的代码:
import pandas as pd
headers = ['AA', 'Num']
dtypes = {'AA': 'str', 'Num': 'int'}
pdate = ['AA']
df = pd.read_csv('test1.csv',
header=None,
names = headers,
dtype = dtypes,
parse_dates = pdate,
date_parser=None)
top = df.head()
print(top)这是我的csv文件:
AA,Num
1/1/2020,5
2/1/2020,10
3/1/2020,15
4/1/2020,20
5/1/2020,25
6/1/2020,30
7/1/2020,35
8/1/2020,40
9/1/2020,45
10/1/2020,50
11/1/2020,55发布于 2020-03-20 07:50:57
我认为问题是参数header=None,如果在csv中没有头文件,就使用它。所以把它移开。此外,如果需要解析所有列,则应该省略参数names = headers:
#here is set new columns names, so original headers are shift to first row of data
df = pd.read_csv('test1.csv',
header=None,
names = headers,
#dtype = dtypes,
#parse_dates = pdate,
date_parser=None)
top = df.head()
print(top)
AA Num
0 AA Num
1 1/1/2020 5
2 2/1/2020 10
3 3/1/2020 15
4 4/1/2020 20正确的解析:
df = pd.read_csv('test1.csv',
#header=None,
#names = headers,
dtype = dtypes,
parse_dates = pdate,
date_parser=None)
top = df.head()
print(top)
AA Num
0 2020-01-01 5
1 2020-02-01 10
2 2020-03-01 15
3 2020-04-01 20
4 2020-05-01 25如果需要只筛选某些列,则names = headers使用usecols=headers参数。
发布于 2020-03-20 07:59:00
以下是工作代码:
headers = ['AA', 'Num']
dtypes = {'AA': 'str', 'Num': 'int'}
pdate = ['AA']
df = pd.read_csv('test1.csv',
dtype = dtypes,
parse_dates = pdate,
date_parser=None)
top = df.head()
print(top)https://stackoverflow.com/questions/60770312
复制相似问题