小编gno*_*nek的帖子

根据索引AND列名称逐个单元格填充整个数据帧?

我有一个数据框,其中行索引和列标题应确定每个单元格的内容。我正在使用以下df的更大版本:

df = pd.DataFrame(index = ['afghijklde', 'afghijklmde', 'ade', 'afghilmde', 'amde'], 
                  columns = ['ae', 'azde', 'afgle', 'arlde', 'afghijklbcmde'])
Run Code Online (Sandbox Code Playgroud)

具体来说,我想应用自定义函数edit_distance()或等效函数(有关函数代码,请参见此处),该函数计算两个字符串之间的差异得分。两个输入是行名和列名。以下工作正常,但速度非常慢:

for seq in df.index:
    for seq2 in df.columns:
        df.loc[seq, seq2] = edit_distance(seq, seq2) 
Run Code Online (Sandbox Code Playgroud)

这产生了我想要的结果:

            ae  azde    afgle   arlde   afghijklbcmde
afghijklde  8    7        5       6          3
afghijklmde 9    8        6       7          2
ade         1    1        3       2          10
afghilmde   7    6        4       5          4
amde        2    1        3       2          9
Run Code Online (Sandbox Code Playgroud)

有什么更好的方法(也许使用applymap()?)呢?一切我已经试过applymap()applydf.iterrows()返回的那种错误 …

python pandas

3
推荐指数
1
解决办法
1789
查看次数

标签 统计

pandas ×1

python ×1