【发布时间】:2020-05-12 10:30:39
【问题描述】:
美国运通下载的传入 CSV 如下所示。 (我希望每个字段都有引号,但事实并非如此。它将第二个 CSV 列中引用的长数字视为 Pandas 数据框中的第一列,即 320193480240275508 作为我的“日期”列:
2019 年 12 月 13 日,'320193480240275508',阿拉莫租车,约翰 Doe,-12345,178.62,Travel-Vehicle Rental,DEBIT,
colnames = ['Date', 'TransNum', 'Payee', 'NotUsed4', 'NotUsed5', 'Amount', 'AmexCategory', 'DebitCredit']
df = pd.read_csv(filenameIn, names=colnames, header=0, delimiter=",")
delimiter=",")
pd.set_option('display.max_rows', 15)
pd.set_option('display.width', 200)
print (df)
print (df.values)
开始 日期 ... DebitCredit 12/13/19 '320193480240275508' ... NaN
我有一个例程来重新格式化日期(处理诸如 1/3/19 之类的事情,并添加世纪)。它是这样称呼的:
df['Date'][j] = reformatAmexDate2(df['Date'][j])
该例程显示日期如下:
def reformatAmexDate2(oldDate):
print ("oldDate=" + oldDate)
oldDate='320193480240275508'
我看到这篇推荐 dayfirst=True 的帖子,并添加了这一点,但结果相同。我什至从未告诉 Pandas 第 1 列是日期,所以我相信它应该将其视为文本。
【问题讨论】:
-
read_csv 正在更改或替换/交换列值的列顺序?
-
你能改一下吗,我不明白你在问什么。
-
抱歉,我无法理解手头的问题,您说“它将第二个 CSV 列中引用的长数字视为 Pandas 数据框中的第一列”这是什么意思你想要日期列作为你的第一个?还是索引?
-
这是一个csv,逗号之间的所有内容都应该是一个字段,因此日期应该是字段1,320193480240275508应该是TransNum等......
标签: python-3.x pandas