首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用Python查找CSV文件中的数据

用Python查找CSV文件中的数据
EN

Stack Overflow用户
提问于 2022-12-02 00:36:47
回答 4查看 84关注 0票数 0

我如何在Python中实现这一点。我知道excel中有一个vlookup函数,但是如果在Python中有一种方法,我更喜欢用Python来实现它。基本上,我的目标是从CSV2列数量中获取数据,并将数据写入基于Bin_Name的CSV1的列数量。脚本不应该一次复制所有的值,它必须通过选择一个Bin_Name。例:今天,我想把Bin_Name的数据从CSV2的ABCDE到CSV1,然后它会用CSV1的列数量来写数据。如果这是可能的话,我将非常感激,并将从中学到很多东西。先谢谢你。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CSV1                     CSV2

Bin_Name   Quantity      Bin_Name   Quantity
A                        A          43  
B                        B          32
C                        C          28
D                        D          33 
E                        E          37   
F                        F          38
G                        G          39
H                        H          41
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2022-12-02 00:57:56

这里有一种方法可以在Python中实现这一点而无需使用

  1. 将两个CSV文件读入两个单独的字典列表中,其中每个字典表示CSV文件中的一行。
  2. 迭代来自CSV1的字典列表,对于每个字典,在CSV2字典列表中搜索匹配的Bin_Name。
  3. 如果找到匹配,则从CSV1更新字典中的数量值,并从CSV2中的匹配字典中更新数量值。
  4. 将更新的字典列表从CSV1写回一个新的CSV文件。

以下是上述步骤的示例实现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Import the csv module to read and write CSV files
import csv

# Open the two CSV files in read mode
with open("CSV1.csv", "r") as csv1_file, open("CSV2.csv", "r") as csv2_file:
    # Use the csv reader to read the CSV files into lists of dictionaries
    csv1_reader = csv.DictReader(csv1_file)
    csv1_data = list(csv1_reader)

    csv2_reader = csv.DictReader(csv2_file)
    csv2_data = list(csv2_reader)

    # Iterate over the list of dictionaries from CSV1
    for row in csv1_data:
        # Search for a matching Bin_Name in the list of dictionaries from CSV2
        match = next((r for r in csv2_data if r["Bin_Name"] == row["Bin_Name"]), None)

        # If a match is found, update the Quantity value in the dictionary from CSV1
        # with the Quantity value from the matching dictionary in CSV2
        if match:
            row["Quantity"] = match["Quantity"]

    # Open a new CSV file in write mode
    with open("updated_csv1.csv", "w") as updated_csv1_file:
        # Use the csv writer to write the updated list of dictionaries to the new CSV file
        csv1_writer = csv.DictWriter(updated_csv1_file, fieldnames=csv1_reader.fieldnames)
        csv1_writer.writeheader()
        csv1_writer.writerows(csv1_data)
票数 0
EN

Stack Overflow用户

发布于 2022-12-02 00:53:45

嗨,您可以先迭代CSV2,然后收集想要的值之后,可以在CSV1中搜索它。我在下面写了一段代码,它可能对你有帮助,但是可以有更有效的方法来做。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def func(wanted_rows: list,csv2df: pd.DataFrame):
    # Iterate csv2df
    for index,row in csv2df.iterrows():
        # Check if index in the wanted list
        if index in wanted_rows:
            # Get index of CSV1 for same value
            csv1_index = CSV1[CSV1.Bin_Name == row['Bin_Name']].index[0]
            CSV1.at[csv1_index,'Quantity'] = row['Quantity']
    return df

wanted_list = [1,2,3,4,5]
func(wanted_list,CSV2df)
票数 0
EN

Stack Overflow用户

发布于 2022-12-02 01:12:21

在这种情况下,我只需要使用熊猫内置的函数,就不需要循环了。

因此,假设没有重复的bin名称,请尝试下面的代码来复制整个列:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df1= pd.read_csv("file1.csv")
df2= pd.read_csv("file2.csv")

df1["Quantity"]= df2["Quantity"].where(df1["Bin_Name"].eq(df2["Bin_Name"]))

print(df1)

  Bin_Name  Quantity
0        A        43
1        B        32
2        C        28
3        D        33
4        E        37
5        F        38
6        G        39
7        H        41

如果只需要复制行的子集,请将布尔索引pandas.DataFrame.loc一起使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
​
vals= ["A", "B", "C", "D"]
df1.loc[df1["Bin_Name"].isin(vals), "Quantity"] = df2.loc[df1["Bin_Name"].isin(vals), "Quantity"]
print(df1)

  Bin_Name  Quantity
0        A      43.0
1        B      32.0
2        C      28.0
3        D      33.0
4        E       NaN
5        F       NaN
6        G       NaN
7        H       NaN
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74652883

复制
相关文章
如何将Power Pivot中的数据模型导入Power BI?
小勤:怎么将Excel里Power Pivot的数据模型导入到Power BI里啊?
大海Power
2021/08/30
4.5K1
从宜家的家具设计讲模块化
很久之前就知道宜家 ,以前在广州的时候也去过一次,给我的印象就是:大、贵、巧。地方很大,东西很贵,设计很巧。现在住的地方离宜家不远,这个月找时间去逛了下,地方还是那么大,东西还是那么贵,设计还是那么的巧。虽然没有买什么东西,不过也还是有所收获的,通过宜家的家具设计方法,我们可以聊聊模块化。
GhostZhang
2022/08/21
5170
PowerBI数据模型优化,从导入数据开始
最近,不少朋友在群里提到,打开Power BI文件、刷新数据、做报表等过程中,经常出现运行比较慢的情况。
大海Power
2022/04/11
1.1K0
PowerBI数据模型优化,从导入数据开始
ARKit
一个增强现实(AR)描述了用户体验,从设备的摄像头的方式,使这些元素似乎居住在现实世界中添加2D或3D元素到实时取景。ARKit结合了设备运动跟踪,摄像机场景捕捉,高级场景处理和显示便利性,简化了构建AR体验的任务。您可以使用这些技术使用iOS设备的后置摄像头或前置摄像头创建多种AR体验。
iOSDevLog
2018/08/22
2.2K0
如何将MyEclipse项目导入eclipse
我们经常会在网上下载一些开源项目,或者从别的地方迁移一些项目进来,但经常会发现导入后各种报错。这是初学java肯定会遇到的问题,本文对一些常见的处理方案做一个总结。(本文将MyEclipse项目导入eclipse的过程为例,其他情况也可参考这个流程)
Twcat_tree
2022/11/30
8480
如何将MyEclipse项目导入eclipse
如何将sql文件导入mysql
第三步:如果sql文件的内容中有创建数据库的语句或者你想将表存放在你已有的数据库,在这里就不用创建数据库。
全栈程序员站长
2022/07/21
6.3K0
如何将sql文件导入mysql
如何将MyEclipse项目导入eclipse
我们经常会在网上下载一些开源项目,或者从别的地方迁移一些项目进来,但经常会发现导入后各种报错。这是初学java肯定会遇到的问题,本文对一些常见的处理方案做一个总结。(本文将MyEclipse项目导入e
剽悍一小兔
2018/05/17
1.2K0
ARKit 教学:如何搭配SceneKit来建立一个简单的ARKit Demo设定ARKit SceneKit View从ARSCNView移除物件
增强现实(Argument Reality)来啰!记得宝可梦(Pokemon Go)吗?它当然也是增强现实的代表之一!Apple终于在iOS11将增强现实带进来,也因为iOS11,未来将会有数不清的iPhones和iPads就会搭载AR功能,这将会让ARKit成为世界最大的平台,是的,如果你对建置增强现实的Apps有兴趣,让你就来对地方了。
iOSDevLog
2018/08/22
1.8K0
ARKit 教学:如何搭配SceneKit来建立一个简单的ARKit Demo设定ARKit SceneKit View从ARSCNView移除物件
如何将 IPhone 的文件导入 Linux
如何将 IPhone 的文件导入 Linux 完全免费方案。 方法一: 使用 Koder 的 Local File Access 功能 这方法不需要在 Linux 端做任何配置。 IPhone 端 安装 koder 进入应用 Koder 点击右下角的 Settings 进入 Local File Access 选择 Enable Local File Access 你可以看到一个链接,比如: http://192.168.1.3:9898 拷贝文件到 koder
绿巨人
2021/03/08
2.1K0
ARKit 在模型上播放视频(附进度控制)
国际惯例先上效果图 [Untitled.gif] ####原理 把模型的material 设置成AVPlayer 就可以了 SCNMaterial \* material = [[SCNMaterial alloc]init]; material.diffuse.contents = self.player; self.showNode.geometry.materials = @[material]; ####代码 // // ViewController.m // palyV
2018/05/07
1.4K2
ARKit 在模型上播放视频(附进度控制)
ARKit 初探
今年7月Apple推出了AR工具ARKit,着实闪着了大家的眼睛。从目前的评测可以知道 ARKit已经非常成熟,完全可以进行商用了。
音视频_李超
2020/04/01
2.4K0
ARKit 初探
如何将数据更快导入Apache Hudi?
Apache Hudi除了支持insert和upsert外,还支持bulk_insert操作将数据摄入Hudi表,对于bulk_insert操作有不同的使用模式,本篇博客将阐述bulk_insert不同的模式以及与其他操作的比较。
ApacheHudi
2021/10/11
2K0
如何将数据更快导入Apache Hudi?
如何将 EPlan 数据导入 TIA Portal
通过交换而不是重新创建不同工程系统(如 TIA 选择工具、EPlan Electric P8 和 TIA Portal)使用的数据,使您的工程流程更加高效。
剑指工控
2022/04/14
1.8K0
如何将 EPlan 数据导入 TIA Portal
关于ARkit
又到了要推送的时候,总觉得昨天刚刚推送过文章一样…… 聊一下ios11里的一些AR吧。 这个公众号的文章推送一般都有一个月左右的滞后期,也就是说推送的内容一般都是一个月以前接触和思考的。 我比较喜欢作者与读者不同步的感觉。就像一些漫画的连载,当读者在杂志上看到第3话时,作者已经在绘制第7话的内容了。这么做的原因当然是最大程度的排除其他因素的影响,比如在郁闷的时候依然可以正常的推送一些欢乐的东西。 之前有提过,ARKit由于刚出来,而且有着一定的的门槛,所以暂时还没有普及。 但是在第一时间更新到ios11,并
沙因Sign
2018/04/18
7970
关于ARkit
eclipse怎么导入java文件_Eclipse如何导入JAVA工程?如何将项目导入Eclipse中?
Eclipse如何导入JAVA工程?很多用户在学习Eclipse的过程中都会不小心把项目给删除了,到这里,笔者要先说一下“没关系,先不要慌张”,如果你把项目删除了,是可以通过导入的方法找回来的。具体方法见下文。
全栈程序员站长
2022/09/08
2.6K0
ARKit介绍
Apple在WWDC17上宣布了一个名为ARKit的新iOS框架。它是一个“允许您轻松为iPhone和iPad创建无与伦比的增强现实体验”的框架。该框架随iOS 11一起发布(目前处于测试阶段),并且仅由Apple的A9或A10芯片驱动的iOS设备支持。这意味着它不适用于iPhone 5S或iPad Mini等旧设备。此外,您无法在模拟器中使用它,因此您必须使用最新的测试版更新您的iPhone / iPad(iOS 11 SDK仅适用于Xcode 9)。
iOSDevLog
2018/08/22
2.4K0
ARKit介绍
ARKit 简介
ARKit 简介 苹果在AR一直布局VR,最近的苹果开发者大会上,果家终于放出大招:iOS移动端ARKit平台以及VR兼容新桌面操作系统macOS High Sierra。 增强现实(AugmentedReality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。说起AR,其实它并不是第一次出现,不管在国内还是国外,好多大小公司都对AR有所涉猎,去年流行的Pokémon Go,阿里的AR红包,百度的AR地图…都是AR领
xiangzhihong
2018/02/06
2.5K0
ARKit 简介
艺术、教育、家具营销... AR应用愈发贴近日常生活
与VR追求的沉浸体验不同,AR更多追求的是虚拟与现实的深度融合,两者也因此有了区别。VR技术更多地用来构建一个沉浸式的虚拟世界,而AR技术则将虚拟带入现实,为生活服务,这也让AR较之VR更贴近生活。
VRPinea
2019/10/10
6610
艺术、教育、家具营销... AR应用愈发贴近日常生活
如何将多个Eclipse项目导入IntelliJ IDEA
IntelliJ IDEA 与Eclipse在新建项目上的叫法略有不同,区别见下图。
lyb-geek
2018/07/26
1.2K0
如何将多个Eclipse项目导入IntelliJ IDEA
如何将结构化数据导入Solr
原文地址:https://dzone.com/articles/how-to-import-structured-data-into-solr
Steve Wang
2018/06/04
2.1K0

相似问题

似乎无法连接到本地主机msql?

42

无法从Python2.7连接到MySQL。(无法连接到本地主机)

10

Android Volley ServerError GET方法

113

无法从android连接到本地主机API

15

Android Volley无法返回字符串

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文