将DataFrame的数字部分由字符串类型转换为数字类型

今天我准备用Excel进行画图的时候,我发现我Excel中的数据无法正常画出,例如:

这是为什么啊,因为这些数据储存的时候,被存为了字符串类型,而不是数字类型,我们可以通过python函数进行数据类型的转换

具体代码如下:

import pandas as pd

data = pd.read_csv("333.csv")
def SeriesFloat(series):
    """
    :param series: 输入的series
    :return: 元素转换为float或int后的series
    """
    length = len(series)
    FloatSeries = pd.Series([], dtype='object')
    index = 0
    for i in range(length):
        n = series[i]

        # 将可变为float或int类型的元素转换为float或int,不能转换的保留原格式
        try:
            if '*' in n:  # 运算符都需要考虑,我这边数据里只有乘号
                FloatSeries[index] = n
            else:
                FloatSeries[index] = eval(n)
        except Exception:
            FloatSeries[index] = n
        index += 1
    return FloatSeries

def DataFrameFloat(dataframe):
    """
    :param dataframe: 输入的dataframe
    :return: 元素转换为float或int后的dataframe
    """
    # 构建与传入dataframe列名相同的dataframe
    columns = []
    for column in dataframe.columns:
        columns.append(column)
    FloatDataFrame = pd.DataFrame(columns=columns)

    # 将元素转换为float的series赋值到目标dataframe
    for i in columns:
        series = dataframe[i]
        series = SeriesFloat(series)
        FloatDataFrame[i] = series
    return FloatDataFrame

dataz = DataFrameFloat(data)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>