【问题标题】:Rename csv columns according to the choosen dropdown list in streamlit in python根据python中streamlit中选择的下拉列表重命名csv列
【发布时间】:2021-12-19 22:34:19
【问题描述】:

我正在使用 pandasstreamlit 重命名 csv 的列。我是 python 新手。我怎样才能在streamlit/python中做到这一点?在 JS 中,它可以通过映射和更新对象来完成。但我不想在 python/streamlit 中实现它。

df.rename(columns={'Name': 'Name', 'Address1': 'Address_1','Address2': 'Address_2','Address3': 'Address_3','Address4': 'Address_4'}, inplace=True)

Desired Output

Desire Output

【问题讨论】:

  • 尝试使用st.selectboxst.text_input,创建字典然后在df.rename中使用

标签: python csv streamlit


【解决方案1】:

你可以这样做:

import pandas as pd
import streamlit as st


def main():

    try:
        df = pd.read_csv("my_csv.csv", sep=",", index_col=False)
    except FileNotFoundError as e:
        df = pd.DataFrame({
            "Name": ["Joe", "John", "Jane", "Mary"],
            "Address1": ["A", "E", "I", "M"],
            "Address2": ["B", "F", "J", "N"],
            "Address3": ["C", "G", "K", "O"],
            "Address4": ["D", "H", "L", "P"],
            "City": ["Dublin", "Ontario", "London", "Paris"],
            "Country": ["Ireland", "Canada", "England", "France"],
        })

    st.dataframe(df)

    with st.form(key="form"):
        col_to_change = st.selectbox("Column to change", df.columns)
        new_col_name = st.text_input("New name", value="")
        submit_button = st.form_submit_button(label='Submit')

    if submit_button:
        df = df.rename(columns={col_to_change: new_col_name})

    st.dataframe(df)

    df.to_csv("my_csv.csv", sep=",", index=False)

    return


if __name__ == "__main__":
    main()

它读取并保存到名为mycsv.csv 的文件中。开头可能会缺少此 csv。

这段代码让用户选择一个列和一个新名称,然后单击一个按钮来重命名数据框的列并将其保存到mycsv.csv,并使用新的列名:

    with st.form(key="form"):
        col_to_change = st.selectbox("Column to change", df.columns)
        new_col_name = st.text_input("New name", value="")
        submit_button = st.form_submit_button(label='Submit')

    if submit_button:
        df = df.rename(columns={col_to_change: new_col_name})

【讨论】:

  • 它有效,但我想在表格左侧列出列标题,右侧是列标题新名称的下拉列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
相关资源
最近更新 更多