如何使用 pandas 和 python 更改给定数据框中列的类型
how to change the type of the columns in a given dataframe using pandas and python
如何在 Streamlit 中创建一个函数来更改数据框中列的数据类型,其中用户 select 他想要将 selected 列转换为它的类型?
我创建了一个将数据框作为参数的函数,然后在下拉列表中显示用户可以从中选择的类型。
问题是,当用户 select 新类型和系统打印 df.info()
selected 列仍然是旧类型时。
代码:
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())
我的函数哪里出错了??
Pandas 可以将现有列中的数据转换为不同的数据类型。对于大多数字符串、整数、浮点数或布尔数据,请将 pd.convert_dtypes and for datetime use pd.to_datetime. If you need a custom output that isn't converting datatypes (like time instead of datetime), you can use df.apply 与以原始形式输入数据并以所需形式输出数据的函数一起使用。
如何在 Streamlit 中创建一个函数来更改数据框中列的数据类型,其中用户 select 他想要将 selected 列转换为它的类型?
我创建了一个将数据框作为参数的函数,然后在下拉列表中显示用户可以从中选择的类型。
问题是,当用户 select 新类型和系统打印 df.info()
selected 列仍然是旧类型时。
代码:
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())
我的函数哪里出错了??
Pandas 可以将现有列中的数据转换为不同的数据类型。对于大多数字符串、整数、浮点数或布尔数据,请将 pd.convert_dtypes and for datetime use pd.to_datetime. If you need a custom output that isn't converting datatypes (like time instead of datetime), you can use df.apply 与以原始形式输入数据并以所需形式输出数据的函数一起使用。