python - 如何使用熊猫数据框的if条件
问题描述
我已经构建了我正在使用 csv 的应用程序,并且我正在使用这些条件,但它们非常慢。我听说使用 pandas 速度很快,我只想将此代码转换为 pandas,我搜索了很多但不知道如何在 pandas 中使用 if else 条件
with open("alkhidmat.txt", newline="", encoding="utf-8") as f:
reader = DictReader(f, delimiter=";")
for index, row in enumerate(reader):
if (
search_uc == "All"
and row["Food Package"] == food
and (row["Category"] == check_category or check_category == "All")
and (row["Gender"] == check_gender or check_gender == "All")
):
pass
这是 csv 文件中的数据
Registration No;Person Name;Father Name;Gender;Persons;Union Council;Address;Date;CNIC;Category;Occupation;Mobile No;Food Package
1;گل محمد خان;محمد اقبال;مرد;7;Kholian Bala;بلڈ ھیر;04/08/2020;1330221680055;دہیاڑی دار مزدور;مزدری;3121582459;Retain
我让它更简单这是我在代码中某处使用的条件
df.loc[df["CNIC"] == cnic_no, "Food Package"] = "Retain"
这个条件是如果有 cnic_no == key["CNIC"] 的任何条目然后更改食品包以保留现在我只想要一个简单的条件
if df["CNIC"]==cnic_no
如何使用 pandas 使用此条件
解决方案
可能将DataFrame转换为numpy 数组会起作用。
import pandas as pd
# read data from csv file
data = pd.read_csv("Data.csv")
print(type(data))
print(data) # will print the data in dataframe
data = data.values
print("---------")
for row in data:
row_length = len(row)
for i in range(row_length):
if row[i] == "Salman":
print(row)
输出:
<class 'pandas.core.frame.DataFrame'>
Name Age Gender
0 Deepak 24 Male
1 Tony 45 Male
2 Salman 50 Male
---------
['Salman' 50 'Male']
推荐阅读
- matlab - 如何在 Matlab 中集成 heaviside(yf)?
- javascript - 如何使用 highcharts 可拖动情节线作为视频时间线(反之亦然)
- javascript - 模块构建失败:SyntaxError: Unexpected token(三个点)
- excel - 分类 Excel 过滤器
- eclipse - Eclipse 未在控制台中显示已终止消息或已完成代码以了解程序执行已完成
- node.js - finally() 在 then() 之前执行,在准备好的语句执行中完成
- javascript - Chrome 后台自动播放无法正常工作
- azure - Azure API 管理/门户:在 API 门户中为“试用”激活模拟
- javascript - 如何制作功能齐全的brainf*ck解释器?
- docker - docker-compose 在容器健康之后和依赖容器可用之前运行命令