gpt4 book ai didi

python - 格式化 csv 以允许 numpy 制作数据框

转载 作者:行者123 更新时间:2023-12-01 04:11:17 25 4
gpt4 key购买 nike

我正在尝试使用 numpy 读取此 CSV 文件。我正在关注this tutorial但我的数据格式与他们的示例不同

Here's a my csv data

以及我正在使用的代码:

import datetime as dt
import pandas as pd
import numpy as np


na_data = np.loadtxt('BTC.csv', delimiter=',', skiprows=2)
na_price = na_data[:, 3:4]
na_dates = np.str_(na_data[:, 0:1])

print na_price
print na_dates

ValueError: invalid literal for float(): 09/08/2015

我需要在开始时格式化日期,我一直在网上关注其他人的问答并意识到我需要这样的东西pd.read_csv('BTC.csv', dayfirst=True, parse_dates=[0 ])但不知道如何实现它。

感谢您的宝贵时间

编辑:数据最初取自 from here ,我编写了一个脚本来分割每一行。然而,从 jezrael 的评论来看,打印数据框会产生与此类似的格式!那么也许我可以直接将此文本输入 pandas ?

最佳答案

您可以在函数 read_csv 中使用参数 sep 作为任意空格:\s+loc :

import pandas as pd
import io

temp=u"""Date low open close high BTC_vol
08/08/2015 266 280.04 266.82 280.32 273.43
09/08/2015 260.88 264 265.52 267.6 264.76
10/08/2015 262.17 265.69 265.1 267.72 265.395 """
#after testing replace io.StringIO(temp) to filename
df = pd.read_csv(io.StringIO(temp), sep="\s+", parse_dates=[0], dayfirst=True )
print df
# Date low open close high BTC_vol
#0 2015-08-08 266.00 280.04 266.82 280.32 273.430
#1 2015-08-09 260.88 264.00 265.52 267.60 264.760
#2 2015-08-10 262.17 265.69 265.10 267.72 265.395

print df.loc[2, 'Date']
#2015-08-10 00:00:00

print df.loc[2, 'close']
#265.1

如果要将pandas dataframe转换为numpy array,请使用values :

print df.values
#[[Timestamp('2015-08-08 00:00:00') 266.0 280.04 266.82 280.32 273.43]
# [Timestamp('2015-08-09 00:00:00') 260.88 264.0 265.52 267.6 264.76]
# [Timestamp('2015-08-10 00:00:00') 262.17 265.69 265.1 267.72 265.395]]

编辑:

您必须省略分隔符,因为 sep=',' 是默认值(感谢 Anton ):

import pandas as pd

df = pd.read_csv('test/BTC.csv',parse_dates=[0], dayfirst=True)
print df.head()

D low open close high Unnamed: 5 BTC_vol \
0 2015-08-08 266.00 280.04 266.82 280.32 273.430 29915.158940
1 2015-08-09 260.88 264.00 265.52 267.60 264.760 16578.024530
2 2015-08-10 262.17 265.69 265.10 267.72 265.395 10780.629240
3 2015-08-11 264.81 265.09 269.57 270.30 267.330 9817.758063
4 2015-08-12 265.80 269.30 269.84 273.75 269.570 14290.615450

USD_vol Unnamed: 8 Unnamed: 9
0 8116830 0 281.312854
1 4382630 0 279.808773
2 2856790 0 278.407937
3 2619460 0 277.566229
4 3848950 0 276.830398

关于python - 格式化 csv 以允许 numpy 制作数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34916412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com