[英]Pandas converting dtype object to string
I have trouble converting the dtype of a column. 我无法转换列的dtype。 I am loading a csv file from yahoo finance.
我正在从yahoo finance加载一个csv文件。
dt = pd.read_csv('data/Tesla.csv')
this gives me the following info: 这给了我以下信息:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 923 entries, 0 to 922
Data columns (total 7 columns):
Date 923 non-null object
Open 923 non-null float64
High 923 non-null float64
Low 923 non-null float64
Close 923 non-null float64
Volume 923 non-null int64
Adj Close 923 non-null float64
dtypes: float64(5), int64(1), object(1)
i try to convert the Date into a string but whatever i try it doesn't working. 我尝试将日期转换为字符串,但无论我尝试它不起作用。 I tried to loop over the row and convert it with str().
我试图遍历行并用str()转换它。 I have tried to change the dtype of the object with
dt['Date'].apply(str)
and I have tried a special dtype object and use that: 我试图用
dt['Date'].apply(str)
更改对象的dtype .apple dt['Date'].apply(str)
我尝试了一个特殊的dtype对象并使用它:
types={'Date':'str','Open':'float','High':'float','Low':'float','Close':'float','Volume':'int','Adj Close':'float'}
dt = pd.read_csv('data/Tesla.csv', dtype=types)
But nothing seems to be working. 但似乎没有任何效果。
I use pandas version 0.13.1 我使用pandas版本0.13.1
Converting your dates into a DateTime will allow you to easily compare a user inputted date with the dates in your data. 将日期转换为DateTime将允许您轻松地将用户输入的日期与数据中的日期进行比较。
#Load in the data
dt = pd.read_csv('data/Tesla.csv')
#Change the 'Date' column into DateTime
dt['Date']=pd.to_datetime(dt['Date'])
#Find a Date using strings
np.where(dt['Date']=='2014-02-28')
#returns (array([0]),)
np.where(dt['Date']=='2014-02-21')
#returns (array([5]),)
#To get the entire row's information
index = np.where(dt['Date']=='2014-02-21')[0][0]
dt.iloc[index]
#returns:
Date 2014-02-21 00:00:00
Open 211.64
High 213.98
Low 209.19
Close 209.6
Volume 7818800
Adj Close 209.6
Name: 5, dtype: object
So if you wanted to do a for loop, you could create a list or numpy array of dates, then iterate through them, replacing the date in the index with your value: 因此,如果你想做一个for循环,你可以创建一个列表或numpy日期数组,然后遍历它们,用你的值替换索引中的日期:
input = np.array(['2014-02-21','2014-02-28'])
for i in input:
index = np.where(dt['Date']==i)[0][0]
dt.iloc[index]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.