Python 将日期作为字符串从csv解析为
我一直在尝试使用panda从我的csv中将日期解析为字符串 我在这里试图实现的是提取一行(来自csv),其中包含两种类型的数据:字符串和整数 在这里,我想使用docx mailmerge生成Microsoft Word报表 就上下文而言,我是在这里指解决方案时得出以下结论的: 多谢各位 下面是我得到的错误: ValueError:以10为基数的int()的文本无效:“Num” 这是我的密码:Python 将日期作为字符串从csv解析为,python,pandas,csv,Python,Pandas,Csv,我一直在尝试使用panda从我的csv中将日期解析为字符串 我在这里试图实现的是提取一行(来自csv),其中包含两种类型的数据:字符串和整数 在这里,我想使用docx mailmerge生成Microsoft Word报表 就上下文而言,我是在这里指解决方案时得出以下结论的: 多谢各位 下面是我得到的错误: ValueError:以10为基数的int()的文本无效:“Num” 这是我的密码: import pandas as pd headers = ['AA', 'Num'] dty
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
我认为问题在于参数
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
如果需要只筛选某些列,请使用
usecols=headers
参数。以下是工作代码:
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)
谢谢你我认为不允许使用“use_cols”。@SyahmiShaarani-对不起,我的打字错误。它是
usecols
,用于多个列,只需解析很少的列。是的,它正在工作!但现在,当我打印精确的单元格(行和列)时,我得到了“2020-01-01 00:00:00”,但在数据框中,它只显示日期。如何删除时间戳?@SyahmiShaarani-在pandas中,如果没有时间不显示00:00:00
,您可以检查它print(df['AA'].tolist())
。如果不需要时间,请将列AA
转换为日期,如df['AA']=df['AA'].dt.date
另一个问题,如果我直接使用Excel怎么办?问题是日期不被视为“str”,那么我该如何处理我的代码?我收到此错误“dateparse=lambda x:pd.datetime.strTime(x,'%d/%m/%Y')类型错误:当我使用excel作为日期列时,strTime()参数1必须是str,而不是datetime.datetime”,熊猫不会对其进行分析。