使用Pandas将ndarray值转换为整个数据框的数值

时间:2018-12-14 07:06:15

标签: python pandas dataframe

我有一个这样的数据框df:

a   b
1   2
3   4

但是数据类型是每个值,例如ndarray

type(df.a.values[0])
numpy.ndarray

df.a.values[0]
array([1])

我想将整个数据框转换为数字类型,并且所有值类型都应为int或float。

我尝试了这段代码

df = df.apply(pd.to_numeric)

但是此代码不起作用,如何处理?

但是当我使用to_csv将文件保存在本地并使用read_csv进行读取时,它会自动转换。但是如何即时转换?

2 个答案:

答案 0 :(得分:1)

您可以通过使用

将类型更改为numpy int或float
df.astype(np.float64)

转换后,您将获得

dtype: float64

答案 1 :(得分:0)

如果所有单元格仅包含一个值,则可以使用

df.a.apply(lambda a: a[0])

从单元格中包含的数组中获取值。

如果可能的话,可能值得重新进行从数据到数据框的转换,以摆脱这些零维数组。

相关问题