Python 如何根据与输入字符串共享的特征从数据集中获取值

Python 如何根据与输入字符串共享的特征从数据集中获取值,python,python-3.x,pandas,Python,Python 3.x,Pandas,我目前正在试验python数据库,并请求它们提供信息。我正在尝试检查数据集(csv文件)是否: 与输入的字符串共享单词。这是我到目前为止所拥有的 import csv import pandas as pd #creates data set df = pd.read_csv('Keywords.csv', index_col = 'word_num') print(df) print('///////////////////////////////////////////////////

我目前正在试验python数据库,并请求它们提供信息。我正在尝试检查数据集(csv文件)是否:

与输入的字符串共享单词。这是我到目前为止所拥有的

import csv
import pandas as pd

#creates data set
df = pd.read_csv('Keywords.csv', index_col = 'word_num')

print(df)

print('///////////////////////////////////////////////////////////////////')

#new string for used to check for similatiry
input = 'yup world earthlings'

input = input.split()

#checking for cells andy words in common with 'x'
df = df[df['Keyword'].str.contains('|'.join(input))]

print(df)
到目前为止,这只输出熊猫数据集形式的数据:

Keyword
1     yup
我想做的是让我的输出成为存储的字符串('yup')。

试试看

results = df[df['Word_num'].str.contains('|'.join(input))].values[0]

首先,请以可复制的方式分享您的问题,以便其他人可以创建您的数据,例如:

import pandas as pd

df = pd.DataFrame({'Keyword': ['hello', 'world', 'yup'], 
                   'Word_num': [3, 4, 5]})
其次,不要用保留的特殊关键字命名任何对象
input
是Python中的一个特殊术语,用于进行用户输入。因此,请将您的对象命名为
my_input
或任何类似的普通名称

my_input = 'yup world earthlings'
现在,您要做的是获取该字符串的每个元素,并检查它们是否存在于
df
关键字列中。只要做一个循环就可以了:

for x in my_input.split():
    if x in df['Keyword'].values:
        print(x)

# Output:
# yup
# world

让我知道这是否有帮助,或者你是否需要进一步的帮助。

你的
关键字
列都是
ints
,输入字符串中没有任何内容lol-woops只是一个输入错误,它们应该被切换。这项工作已经完成,但是现在我只得到了csv和输入有共同点的第一个单词。比如,如果输入是“hello world”,我的关键字是“hello”和“world”,那么我也只能得到“hello”,这可能要求很多,但我如何将其应用到if语句或for/while循环中呢。我还没有找到一种方法来获得真/假输出,所以这可能没有帮助。谢谢!我找到了一种不同的方法来解决这个问题,使用Jaccard索引,但我很感谢您的帮助。此外,我还有上面的csv文件,任何人都可以复制数据。@LorenzoBeronilla很高兴听到你解决了这个问题。仅供参考,共享csv、图像、txt或任何类似内容不会使问题重现。如果您共享Pandas代码,您就可以运行并重新创建您的问题,而不必从头开始创建您的数据结构,这将是一件好事。创建Pandas数据集的代码行是“df=pd.read\u csv('Keywords.csv',index\u col='word\u num')。我不知道这是否有帮助,但如果你指的是这个,它就在那里。我不熟悉整个堆栈溢出的事情,所以这一切都很有帮助。
my_input = 'yup world earthlings'
for x in my_input.split():
    if x in df['Keyword'].values:
        print(x)

# Output:
# yup
# world