row values get replaced after new iteration(行值在新迭代后被替换)
本文介绍了行值在新迭代后被替换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个如下所示的函数,并在for循环中运行它:
def findInfo(url, df):
allLinks = getAllLinks(url)
katalogLinks = getKatalogLinks(allLinks)
if len(katalogLinks) == 0:
df = df.append({'Company URL' : url,
'Potential Client' : 0} ,
ignore_index=True)
return df
else:
print("catalog links foud", url)
df["Company URL"] = url
df["Potential Client"] = 1
pdfLinks = getPDFLinks(katalogLinks)
print(pdfLinks)
pdfDetails = checkPDFs(url, pdfLinks)
df = df.append({'Company URL' : url,
'Potential Client' : 1, "Number of PDFs found":len(pdfLinks),"Info":pdfDetails} ,
ignore_index=True)
return df
df = pd.DataFrame()
df["Company URL"] = ""
df["Potential Client"] = ""
lst = ["http://www.aurednik.de/", "https://www.eltako.de/"]
for i in lst:
df = findInfo(i, df)
print("DF", df)
df.head()
对于第一次迭代,当我在循环中打印df时,我得到了正确的结果
DF Company URL Potential Client Info Number of PDFs found
0 http://www.aurednik.de/ 1 {} 0.0
但是,对于第二次迭代,我希望第一行保持原样,然后添加从df返回的另一行。但是,第一个df中的url被替换,我的最终df如下所示:
Company URL Potential Client Info Number of PDFs found
0 https://www.eltako.de/ 1 {} 0.0
1 https://www.eltako.de/ 1 {'https://www.eltako.de/wp-content/uploads/2020/11/Eltako_Gesamtkatalog_LowRes.pdf': {'numberOfPages': 440, 'creationDate': '2017-09-20'}} 1.0
为什么要替换第一行?我怎么才能解决这个问题?这可能与我保存或返回df的方式有关,但我找不到问题所在。
推荐答案
第12-13行:
df["Company URL"] = url
df["Potential Client"] = 1
您将整个列&Company URL";和";Potential Customer";设置为当前迭代的值。删除这些行应该可以解决问题。
这篇关于行值在新迭代后被替换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:行值在新迭代后被替换
基础教程推荐
猜你喜欢
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01
- 如何在Python中绘制多元函数? 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- 合并具有多索引的两个数据帧 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01