dataframe中的数据类型及转化

1 float与str的互化

import pandas as pd
import numpy as np

df = pd.DataFrame({'a':[1.22, 4.33],
                   'b':[3.44, 5.66]})
# 将float类型转为str
# 法一
df['a'] = df['a'].apply(lambda x: str(x))
print(type(df['a'].values[1]))
# 法二
df['b'] = df['b'].astype(str)
print(type(df['b'].values[1]))
# str转float同上
df['a'] = df['a'].apply(lambda x: float(x))
print(type(df['a'].values[1]))
df['b'] = df['b'].astype(float)
print(type(df['b'].values[1]))
# <class 'str'>
# <class 'str'>
# <class 'numpy.float64'>
# <class 'numpy.float64'>
View Code

2 建表时,如果赋的是空值,默认是float类型,所以要指定数据类型。

特别是建了空表后,与其它表融合时,要注意数据类型的改变。

df = pd.DataFrame({ 'a': [],
                    'b': [],
                  })
print(df.info())
df = pd.DataFrame({ 'a': [],
                    'b': [],
                 },         dtype = np.int64)
print(df.info())
# <class 'pandas.core.frame.DataFrame'>
# RangeIndex: 0 entries
# Data columns (total 2 columns):
# a    0 non-null float64
# b    0 non-null float64
# dtypes: float64(2)
# memory usage: 76.0 bytes
# None
# <class 'pandas.core.frame.DataFrame'>
# RangeIndex: 0 entries
# Data columns (total 2 columns):
# a    0 non-null int64
# b    0 non-null int64
# dtypes: int64(2)
# memory usage: 76.0 bytes
# None

参考:https://blog.csdn.net/jinruoyanxu/article/details/79150896

原文地址:https://www.cnblogs.com/xxswkl/p/10963708.html