Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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_Pandas_Dataframe - Fatal编程技术网

Python-通过获取字母字符数来创建数据帧

Python-通过获取字母字符数来创建数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据框,它有一个名为“话语”的列,其中包含字符串(例如:“我想要一杯啤酒”是它的第一行) 我需要的是创建一个新的数据框,其中包含字母表中每行“话语”的每个字母的数量 这意味着,例如在“我想要一杯啤酒”的情况下,我需要得到以下行:9 23114141 81225 1 25518,因为“I”是字母表中的第9个字母,“w”是第23个字母,依此类推。请注意,我希望保留空格“” 到目前为止,我所做的工作如下: for word in df2[['Utterances']]: for char

我有一个数据框,它有一个名为“话语”的列,其中包含字符串(例如:“我想要一杯啤酒”是它的第一行)

我需要的是创建一个新的数据框,其中包含字母表中每行“话语”的每个字母的数量

这意味着,例如在“我想要一杯啤酒”的情况下,我需要得到以下行:9 23114141 81225 1 25518,因为“I”是字母表中的第9个字母,“w”是第23个字母,依此类推。请注意,我希望保留空格“”

到目前为止,我所做的工作如下:

for word in df2[['Utterances']]:
   for character in word:
      new.append(ord(character.lower())-96)
   str1 = ''.join(str(e) for e in new)
上面的函数返回连接的字符串。但是,上面的循环只在str1返回的字符串没有所需的空格(“”)时迭代一次。当然,我无法找到将这些行附加到新数据帧中的方法

任何帮助都将不胜感激

谢谢。

你可以

In [5572]: df
Out[5572]:
            Utterances
0  I wanna have a beer

In [5573]: df['Utterances'].apply(lambda x: ' '.join([''.join(str(ord(c)-96) for c in w) 
                                             for w in x.lower().split()]))
Out[5573]:
0    9 23114141 81225 1 25518
Name: Utterances, dtype: object
你能行

In [5572]: df
Out[5572]:
            Utterances
0  I wanna have a beer

In [5573]: df['Utterances'].apply(lambda x: ' '.join([''.join(str(ord(c)-96) for c in w) 
                                             for w in x.lower().split()]))
Out[5573]:
0    9 23114141 81225 1 25518
Name: Utterances, dtype: object
输出

9 12 3 456
输出

9 12 3 456

如果你只有字母表,比如

import string

dic = {j:i+1 for i,j in enumerate(string.ascii_lowercase[:26])}
dic[' ']= ' '
df['Ut'].apply(lambda x : ''.join([str(dic.get(i)) for i in str(x).lower()]))
输出:

Ut new 0 I wanna have a beer 9 23114141 81225 1 25518 Ut新 我想喝杯啤酒923114181225 125518

如果你只有字母表,比如

import string

dic = {j:i+1 for i,j in enumerate(string.ascii_lowercase[:26])}
dic[' ']= ' '
df['Ut'].apply(lambda x : ''.join([str(dic.get(i)) for i in str(x).lower()]))
输出:

Ut new 0 I wanna have a beer 9 23114141 81225 1 25518 Ut新 我想喝杯啤酒923114181225 125518

天哪,提前6分钟?天哪,提前6分钟?