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