如何用Pandas筛选数据并将指定列值存入列表变量?
解决方法
你可以在loc方法中同时指定行筛选条件和需要保留的列,直接得到目标列的筛选结果;如果需要转成列表格式,再做一步转换即可。
1. 获取指定列的筛选结果(保持DataFrame格式,与你期望的表格一致)
修改代码,在loc的第二个参数传入需要的列名列表:
# 筛选指定日期的行,同时只保留三列数据 filtered_df = clientes.loc[clientes['Data'] == '08/02/2023', ['Nome do paciente', 'Data', 'Horário']] print(filtered_df)
执行后输出的就是你期望的带表头的表格格式。
2. 将结果转成列表格式
如果需要把这些数据转成嵌套列表(包含表头或仅数据行),可以用以下代码:
# 仅提取数据行转成嵌套列表 data_list = filtered_df.values.tolist() # 如果需要包含表头的完整列表 header = filtered_df.columns.tolist() full_data_list = [header] + data_list print(full_data_list)
输出的full_data_list结构如下:
[ ['Nome do paciente', 'Data', 'Horário'], ['Teste 1', '08/02/2023', '10h00'], ['Teste 2', '08/02/2024', '13h30'], ... ]
关键说明
原代码仅通过loc筛选了行,没有限制列,所以返回所有列数据。通过在loc的第二个参数传入列名列表,就能精准获取你需要的三列,避免多余数据。
内容的提问来源于stack exchange,提问作者Brandalize
相关产品推荐
相关产品推荐

