使用 pandas 选择和附加一些数据
Posted
技术标签:
【中文标题】使用 pandas 选择和附加一些数据【英文标题】:Selecting and appending some data with pandas 【发布时间】:2021-12-21 01:44:37 【问题描述】: 合并两个文件-
我想通过在列中搜索字母来查找“File1”中的字母。
我想在“文件 2”中搜索“文件 1”中找到的字母时找到包含这些字母的行。
选择“步骤 2”中找到的行下方的行。
将“步骤 3”的结果粘贴到“文件 1”中。 -- 文件#1
*示例
import pandas as pd
File1 = pd.read_csv('sdfsdc.txt', sep=',', header = None)
File2 = pd.read_csv('sdfsdc.csv', 'r')
searchfor = list(File1[0]) #--> it's working:)
for x in searchfor:
if File2[File2[0].str.contains(x)]: #--> it's not working!!!
【问题讨论】:
【参考方案1】:您可以使用str.extract
和merge
:
pattern = f"('|'.join(df1['A'].tolist()))"
match = df2['B'].str.extract(pattern, expand=False).shift()
out = pd.merge(df1, df2, left_on='A', right_on=match, how='left')
输出:
>>> out
A B
0 JCW Information2
1 MBM NaN
2 COP Information1
3 KVI NaN
4 ECX Information3
设置:
data = 'A': ['JCW', 'MBM', 'COP', 'KVI', 'ECX']
df1 = pd.DataFrame(data)
data = 'B': ['dflqksdhCOPdsds', 'Information1', 'hpotrtjgJCWee28',
'Information2', 'xrjzeoazECXeiz1', 'Information3']
df2 = pd.DataFrame(data)
【讨论】:
认为您只是有一个小错字,应该是df1 = pd.DataFrame(data)
和 df2
。但是出色(且快速)的答案!
非常感谢,@JohnCollins。我修正了我的答案。
很抱歉,有没有办法不用熊猫?
也没有pd.read_csv
?以上是关于使用 pandas 选择和附加一些数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 pandas 合并和附加多个 CSV/数据帧的最快方法