Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python从提取的文本中获取数字数据_Python_String_Twitter_Numeric_Data Extraction - Fatal编程技术网

使用python从提取的文本中获取数字数据

使用python从提取的文本中获取数字数据,python,string,twitter,numeric,data-extraction,Python,String,Twitter,Numeric,Data Extraction,我已经提取了用户的推文和位置以及其他重要的推文信息。下一步是提取水位数据(也就是说,如果tweet有一个“数字”后跟“m”或“meter”,则可以将其视为水位数据) 数据集示例如下('text'是提取的tweet的列名,'df'是可以找到列'text'的数据框的名称): 我已尝试使用以下代码: length = len(df['text']) for i in range(length): if df.loc[df['text'].str.contains('%d'+ 'm')] or

我已经提取了用户的推文和位置以及其他重要的推文信息。下一步是提取水位数据(也就是说,如果tweet有一个“数字”后跟“m”或“meter”,则可以将其视为水位数据)

数据集示例如下('text'是提取的tweet的列名,'df'是可以找到列'text'的数据框的名称):

我已尝试使用以下代码:

length = len(df['text'])
for i in range(length):
    if df.loc[df['text'].str.contains('%d'+ 'm')] or if df.loc[df['text'].str.contains('%d'+ 'meter')] :
        df.loc[df['remarks']]== 'YES'
    else:
        df.loc[df['remarks']] == 'NO'
我的错误是:

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我只知道“%d”用于数字,但我不是python专家。任何能帮助修改上述代码的人?

您应该使用正则表达式,例如:

import re
txt = "The rain is 12m"

x = re.findall("\d[\d]*m*", txt)
print(x)
if x:
    print("Yes, there is at least one match!")
else:
    print("No match")

您好。非常感谢您的回答。但是,您能解释一下这一部分吗?“\d[\d]*m*”?基本上,查找[digits number][m character]是一种正则表达式模式并返回在输入文本中找到的字符串列表。如果我支持您找到正确的解决方案,请回答问题。干杯。谢谢。您的答案已经是此帖子的公认答案。:)
import re
txt = "The rain is 12m"

x = re.findall("\d[\d]*m*", txt)
print(x)
if x:
    print("Yes, there is at least one match!")
else:
    print("No match")