You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Streamlit交互式DataFrame提取指定列前n行转为列表并调用函数

实现从Streamlit交互式DataFrame提取指定列前n行转列表

核心思路

  • 通过st.data_editor获取用户交互后的最新DataFrame
  • 从返回的DataFrame中提取目标列,截取前n行并转换为列表
  • 直接用该列表执行自定义业务函数

完整代码示例

import streamlit as st
import pandas as pd

# 构造示例原始数据
df = pd.DataFrame({
    "name": ["Alice", "Bob", "Charlie", "David", "Eve"],
    "age": [25, 30, 35, 40, 45]
})

# 展示交互式表格,获取用户编辑后的DataFrame
edited_df = st.data_editor(df, num_rows="dynamic")

# 定义提取参数
target_column = "name"
top_n = 3

# 提取指定列前n行并转列表
result_list = edited_df[target_column].head(top_n).tolist()

# 展示提取结果(可替换为你的业务函数调用)
st.write(f"提取的前{top_n}行列表: {result_list}")

# 示例业务函数:处理列表内容
def process_target_list(input_list):
    return [item.upper() for item in input_list]

# 执行函数并展示结果
processed_output = process_target_list(result_list)
st.write("处理后的结果: ", processed_output)

关键细节提示

  • st.data_editor返回的edited_df是实时更新的,包含用户对表格的所有修改(新增行、编辑单元格等)
  • 可以添加列名存在性判断避免报错:if target_column in edited_df.columns:
  • 如果top_n大于当前DataFrame的行数,head(top_n)会自动返回全部行,不会抛出异常

内容的提问来源于stack exchange,提问作者andypappy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 18:12:32