python - 熊猫将迭代添加列添加到数据框
问题描述
我想将变量节点保存到每一行,每一行都有不同的节点值
//这一行我想将变量节点添加到列UPU,但目前它只复制最新的节点变量并保存到所有行相同的值。
怎么做
current result
No. KP UPU
88888888 tidak berjaya
66666666 tidak berjaya
55555555 tidak berjaya
expected result
No. KP UPU
88888888 tidak berjaya
66666666 tahniah
55555555 harap maaf
import pandas as pd
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from pandas import ExcelWriter
excel_file = 'upu6.csv'
students = pd.read_csv(excel_file, dtype={'No. KP': object})
# print (students.head())
# writer = pd.ExcelWriter('outputUpu.xlsx')
options = Options()
# options.add_argument("user-data-dir=C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data\\")
options.headless = False
browser = webdriver.Chrome(executable_path=r'C:\chromedriver.exe', options=options) # Your webdriver path
for index,row in students.iterrows():
nokp = (row["No. KP"])
browser.get("https://jpt.unimas.my/semakKeputusanSPM.jsp")
ic = browser.find_element_by_id('vNOKP')
ic.send_keys(nokp)
browser.find_element_by_id('bMASUK').click()
result = BeautifulSoup(browser.page_source, "html.parser")
for node in result.find_all(text=lambda t: t and any(x in t for x in ['TIDAK BERJAYA', 'TAHNIAH', 'HARAP MAAF. TIADA REKOD PERMOHONAN'])):
print(row['No. KP'] +" "+node)
//this line I want to add variable node to column UPU, but currently it only copy the
//latest node variable and save to all row
students['UPU'] = node
students.to_csv('data.csv')
解决方案
您可以使用.at()
来定位所需的单元格并更改其值
首先将您设置No. KP
为数据框的索引
students.set_index('No. KP')
然后您可以使用索引和列名定位单元格
students.at[row['No. KP'], ['UPU']] = node
推荐阅读
- typescript - Graphql Nestjs 将参数添加到类型字段
- c# - 如何在 EntityFramework 中添加相同的表名但不同的架构?
- python - tsv 文件之间的完全连接和基于原始文件的列重命名
- stata - 如何在Stata中匹配样本(CEM)的面板回归中运行随机效应?
- python - 事件发生后如何使页面重定向到同一页面
- mfc - 单击子控件时如何将对话框置于顶部
- python - 神奇的方法__len__()
- python - 如何清除 Visual Studio 代码缓存?
- node.js - 带有设置 {packet,4} 并使用 NodeJS“帧流”进行 TCP 通信的 OTP gen_tcp 的奇怪行为
- reactjs - 使用可拖动按钮调整图像大小 - React Native