Python 如何从字符串列中提取要列出的每个数字?
怎么做 我有一个数据框,看起来像: A列 11.2一些文本17一些文本21 一些文本25.2 4.1一些文本53 17 78 121.1 bla bla bla 14一些文字 12一些文本 我需要将这一行转移到单独的列表中: listA[0]=11.2 listA[1]=17 listA[2]=21 listB[0]=25.2 listB[1]=4.1 listB[2]=53 listB[3]=17 listB[4]=78 listC[0]=121.1 listC[1]=14 listD[0]=12 您将得到该列中每一行的列表。这将是字符串,但你可以转换为浮动,但你想之后 您将得到该列中每一行的列表。它将是字符串,但您可以根据需要将其转换为float。您可以使用re查找所有出现的整数或float数字 df['Column\u A'].applylambda x:re.findallr[-+]?\d*\.\d+\d+,x.tolist 输出: [['11.2', '17', '21'], ['25.2', '4.1', '53', '17', '78'], ['121.1', '14'], ['12']] 如果需要,可以键入cast-themes-to-float/int检查提取的字符串是否存在。在他们身上,类似这样的东西: df['Column\u A'].applylambda x:re.findallr[-+]?\d*.\d+\d+,x.maplambda x:[inti if.''不在i else floati中,用于i in x].tolist 输出: [[11.2, 17, 21], [25.2, 4.1, 53, 17, 78], [121.1, 14], [12]] 正如@Uts所指出的,我们可以通过Series.str直接调用findall,如下所示: listA,listB,listC,listD=df.Column\u A.str.findallr[-+]?\d*\.\d+\d+ 您可以使用re查找整数或浮点数的所有匹配项 df['Column\u A'].applylambda x:re.findallr[-+]?\d*\.\d+\d+,x.tolist 输出: [['11.2', '17', '21'], ['25.2', '4.1', '53', '17', '78'], ['121.1', '14'], ['12']] 如果需要,可以键入cast-themes-to-float/int检查提取的字符串是否存在。在他们身上,类似这样的东西: df['Column\u A'].applylambda x:re.findallr[-+]?\d*.\d+\d+,x.maplambda x:[inti if.''不在i else floati中,用于i in x].tolist 输出: [[11.2, 17, 21], [25.2, 4.1, 53, 17, 78], [121.1, 14], [12]] 正如@Uts所指出的,我们可以通过Series.str直接调用findall,如下所示: listA,listB,listC,listD=df.Column\u A.str.findallr[-+]?\d*\.\d+\d+Python 如何从字符串列中提取要列出的每个数字?,python,pandas,dataframe,Python,Pandas,Dataframe,怎么做 我有一个数据框,看起来像: A列 11.2一些文本17一些文本21 一些文本25.2 4.1一些文本53 17 78 121.1 bla bla bla 14一些文字 12一些文本 我需要将这一行转移到单独的列表中: listA[0]=11.2 listA[1]=17 listA[2]=21 listB[0]=25.2 listB[1]=4.1 listB[2]=53 listB[3]=17 listB[4]=78 listC[0]=121.1 listC[1]=14 listD[0]=
那么,如何单独使用每个列表呢?我需要分开使用。我的意思是,我需要像ListA、ListB、ListC、ListDY这样的单独列表,您可以在一个列表中获得此输出,例如结果和结果[0],结果[1]。。。将在第一行、第二行等处给出匹配的数字。。。。i、 e.结果[0]将给出[11.2,17,21],结果[0][0]将给出11。2@ThePyGuy-apply和to_list函数可能不是必需的。listA,listB,listC,listD=df.Column\u A.str.findallr[-+]?\d*\.\d+\d++@Uts,是的,我们可以通过系列直接调用findall。str@Uts,我在回答中也补充了这一点,谢谢你的建议,如何分别使用每个列表?我需要分开使用。我的意思是,我需要像ListA、ListB、ListC、ListDY这样的单独列表,您可以在一个列表中获得此输出,例如结果和结果[0],结果[1]。。。将在第一行、第二行等处给出匹配的数字。。。。i、 e.结果[0]将给出[11.2,17,21],结果[0][0]将给出11。2@ThePyGuy-apply和to_list函数可能不是必需的。listA,listB,listC,listD=df.Column\u A.str.findallr[-+]?\d*\.\d+\d++@Uts,是的,我们可以通过系列直接调用findall。str@Uts,我在回答中也加了一句,谢谢你的建议
[re.findall(r"\d+?\.?\d*", x) for x in Column_A]