如何解决Pandas 通过从另一个数据帧的 1 列中的单元格检查列表中返回匹配字符串的行来创建新的数据帧
我从 .csv 创建了一个数据框,其中包含超过 380 万行:
import pandas as pd
import csv
file_name = 'bigfile.csv'
bigfile_df = pd.read_csv (file_name,low_memory=False)
然后我要导入第二个 csv,我想将其作为我的列表:
input_df = pd.read_csv('list.csv',delimiter=',')
然后将其转换为列表:
l = input_df['Column_Name'].tolist()
打印出来的样子:
['Text Text Text','Text Text Text','Text Text Text']
该列表相当大,包含超过 12,000 行并包含字符串。
我想要做的是获取列表中的每个条目,并检查 bigfile_df 中列 ['Name'] 的单元格内是否有任何匹配项,并创建一个包含这些匹配项的整行的新数据框。
我希望这一切都有意义,我已经寻找类似的例子来尝试回答这个问题,但找不到。预先感谢您的任何回复。
解决方法
您可以使用查询方法来实现:
output_dfs = []
for entry in l:
output_dfs.append(bigfile_df.query('Name == @entry')
编辑:我可能误解了,如果你想要一个数据框,你可以这样做:
output_df = bigfile_df.query('Name in @l')
这将在 bigfile_df
的所有行中搜索在您的列表 l
中出现“Name”列值的行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。