如何使用pandas和python更改给定数据帧中列的类型

如何使用pandas和python更改给定数据帧中列的类型,python,pandas,streamlit,Python,Pandas,Streamlit,如何创建一个函数来更改Streamlight中数据帧中列的数据类型,用户可以在其中选择要将所选列转换为该列的类型 我创建了一个以dataframe为参数的函数,然后在下拉列表中显示用户可以从中选择的类型 问题是,当用户选择新类型并且系统打印df.info()时,所选列仍然具有旧类型 代码: 我的函数中的错误在哪里???可以将现有列中的数据转换为不同的数据类型。对于大多数字符串、整数、浮点或布尔数据,使用和作为日期时间使用。如果您需要不转换数据类型的自定义输出(如time而不是datetime),

如何创建一个函数来更改Streamlight中数据帧中列的数据类型,用户可以在其中选择要将所选列转换为该列的类型

我创建了一个以dataframe为参数的函数,然后在下拉列表中显示用户可以从中选择的类型

问题是,当用户选择新类型并且系统打印
df.info()
时,所选列仍然具有旧类型

代码:
我的函数中的错误在哪里???

可以将现有列中的数据转换为不同的数据类型。对于大多数字符串、整数、浮点或布尔数据,使用和作为日期时间使用。如果您需要不转换数据类型的自定义输出(如time而不是datetime),您可以与一个函数一起使用,该函数以其原始形式输入数据,并以您想要的形式输出数据。

是的,我试图将一列转换为
时间
,因此如何进行此转换??您可以制作一个函数,以您想要的格式输入数据并输出时间,可能使用。然后可与df.apply一起使用以创建新列。
。要创建新列
或分配给现有列。pd.to_datetime()???
import pandas as pd
import streamlit as st

def transform(df):
    types = {'-':None
           ,'Boolean': '?'
           ,'Byte': 'b'
           ,'Integer':'i'
           ,'Floating point': 'f' 
           ,'Date Time': 'M'
           ,'Time': 'm'
           ,'Unicode String':'U'
           ,'Object': 'O'}
    new_types = {}
    expander_types = st.beta_expander('Convert Data Types')
    for i, col in enumerate(df.columns):
        txt = 'Convert {} from {} to:'.format(col, df[col].dtypes)
        expander_types.markdown(txt, unsafe_allow_html=True)
        new_types[i] = expander_types.selectbox('Field to be converted:',[*types],index=0,key=i)
    st.text(" \n") #break line
    btn1 = st.button('Get CSV')
    if btn1:
        download_file(df, types, new_types, "csv")
        print("transform",df.info())