我有两个现有的pandas
数据帧。一个数据帧是大约1000个单词的列表。这是数据帧的头部:
0
0 abase
1 abate
2 abdicate
3 abduct
4 aberration
我的第二个数据帧是一个空数据帧,有26行和26列,对应于字母表中的字母:
End a b c d e f g h i j ... q r s t u v w x y z
Start
a 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
b 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
e 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
g 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
h 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
j 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
k 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
n 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
o 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
p 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
q 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
s 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
u 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
v 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
w 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
x 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
y 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
z 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
对于第一个数据框中的每个单词,我应该辨别它们以什么字母开头和结尾,然后将1添加到空数据框中相应的行和列中
例如:abase
以“a”开头,以“e”结尾。所以,我需要将1添加到e和a在空数据帧上相遇的位置。我需要在整个第一个数据帧中系统地执行这个操作,但是我被卡住了
我试着用startswith和ends:
values = (input[0].str.startswith(r'a') & input[0].str.endswith(r'e'))
这将正确地返回true
或false
值,但我不知道如何使用这些布尔值添加到空数据帧
最好的做法是什么?我不允许使用除string
、numpy
和pandas
以外的任何库
使用string方法获取第一个和最后一个字符,然后可能是
crosstab
,或者pivot
或者groupby
crosstab
比较慢,但是语法很好创建基表:
代码:
输出(前5行):
尽管在这种情况下不需要
df_base
,您可以改为reindex
两次:相关问题 更多 >
编程相关推荐