读取csv时如何获取numpy数据dtype?

时间:2018-08-06 06:52:13

标签: python pandas

我有一个包含numpy数组的数据框。

我将其保存到一个csv文件中。

加载csv文件后,我发现包含numpy数组的列具有dtype字符串。

如何使用read_csv将其转换为numpy数组?

import pandas as pd
import numpy as np

df = pd.DataFrame(columns = ['name', 'sex'])
df.loc[len(df), :] = ['Sam', 'M']
df.loc[len(df), :] = ['Mary', 'F']
df.loc[len(df), :] = ['Ann', 'F']

#insert np.array
df['data'] = ''
df['data'][0] = np.array([2,5,7])
df['data'][1] = np.array([6,4,8])
df['data'][2] = np.array([9,2,1])

#save to csv file
df.to_csv('data.csv', index =False)
#load csv file
df2 = pd.read_csv('data.csv')#data column becomes string, how to change it to np.array?

2 个答案:

答案 0 :(得分:1)

一种解决方法:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Target.Address = "$B$2" Then
        Exit Sub
    End If
    Dim ToFind
    Dim Found
    ToFind = Sheets("Sheet1").Range("B2").Value
    Set Found = Sheets("Sheet2").Range("A1", "E300").Find(ToFind, LookIn:=xlValues)
    If Not Found Is Nothing Then
        Found.Resize(18, 5).Copy
        Sheets("Sheet2").Range("I3").PasteSpecial (xlPasteValues)
    End If
End Sub

答案 1 :(得分:0)

Pandas只有7种数据类型:Object,float,int,bool,datetime,timedelta和category。因此,列表,字符串,数组等仅被视为对象数据类型。您可以在http://pbpython.com/pandas_dtypes.html中了解更多信息 您只能使用astype函数在这些数据类型之间进行转换。