首页 > 解决方案 > 我想用 python pandas 显示 excel 文件中的所有数据/过滤数据

问题描述

这是我在运行下面应该过滤表的代码后得到的:

在此处输入图像描述.

import pandas as pd
import os
import xlwt
import xlrd
import xlsxwriter as xs


need =("Algeria", "Angola", "Argentina", "Bangladesh", "Belize", "Benin", "Bhutan", "Bolivia", "Botswana", "Brazil", "Burkina Faso", "Burundi", 
"Cameroon", "Cape Verde", "Central African Rep.", "Chad", "Chile", "China", "Colombia", "Comoros", "Congo, Dem. Rep.", "Congo, Republic", 
"Costa Rica", "Cote d'Ivoire", "Cuba", "Djibouti", "Dominica", "Dominican Republic", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Ethiopia", "Fiji", "Gabon", "Gambia", "Ghana", "Grenada", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Honduras", 
"India", "Indonesia", "Iran", "Jamaica", "Jordan", "Kenya", "Kiribati", "Kyrgyzstan", "Laos", "Lebanon", "Lesotho", "Madagascar", "Malawi", 
"Malaysia", "Maldives", "Mali", "Marshall Island", "Mauritania", "Mauritius", "Mexico", "Mongolia", "Morocco", "Mozambique", "Myanmar", 
"Namibia", "Nepal", "Nicaragua", "Niger", "Pakistan", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Rwanda", "Samoa", 
"Sao Tome and Principe", "Senegal", "Seychelles", "Sierra Leone", "Solomon Islands", "South Africa", "Sri Lanka", "St Vincent and the Grenadines", "St.Kitts", "St.Lucia", "Sudan", "Suriname", "Swaziland", "Tanzania", "Thailand", "Togo", "Tonga", "Tunisia", "Turkey", 
"Uganda", "Uruguay", "Vanuatu", "Venezuela", "Viet Nam", "Zambia", "Zimbabwe")

for root, dir, files in os.walk('.'):
    for file in files:
        fi = file.split('.')
        if fi[-1] == 'xlsx':
            fil = file
            data = pd.read_excel(fil)
            filt = data[data['Recipient'] == need]
            filt.to_excel(f'{fi[0]}1.xlsx')

这是原始的 Excel 文件:

在此处输入图像描述

标签: pythonpandas

解决方案


替换filt = data[data['Recipient'] == need]
filt = data[data['Recipient'].isin(need)]

这个isin ()函数会将“数据”过滤到仅接收者列值在集合中的


推荐阅读