You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求将文件-关键词映射DataFrame转换为关键词-文件映射结构

实现DataFrame关键词与对应文件名列表的转换

原始输入DataFrame

business049.txt  [bmw, cash, fuel, mini, product, less, mini]
business470.txt  [saudi, investor, pick, savoy, london, famou]
business075.txt  [eu, minist, mull, jet, fuel, tax, european]
business101.txt  [australia, rate, australia, rais, benchmark]
business060.txt  [insur, boss, plead, guilti, anoth, us, insur]

需求说明

将上述结构转换为两列的DataFrame:一列是关键词,另一列是包含该关键词的文件名列表,示例格式如下:

bmw          [business049.txt]
australia    [business101.txt]
fuel         [business049.txt, business075.txt]

实现代码

我们可以用Pandas的explode、drop_duplicates和groupby方法完成转换,具体步骤如下:

import pandas as pd

# 1. 构造原始DataFrame
data = {
    'filename': [
        'business049.txt',
        'business470.txt',
        'business075.txt',
        'business101.txt',
        'business060.txt'
    ],
    'keywords': [
        ['bmw', 'cash', 'fuel', 'mini', 'product', 'less', 'mini'],
        ['saudi', 'investor', 'pick', 'savoy', 'london', 'famou'],
        ['eu', 'minist', 'mull', 'jet', 'fuel', 'tax', 'european'],
        ['australia', 'rate', 'australia', 'rais', 'benchmark'],
        ['insur', 'boss', 'plead', 'guilti', 'anoth', 'us', 'insur']
    ]
}
df = pd.DataFrame(data)

# 2. 将关键词列表拆分为单行记录
exploded_df = df.explode('keywords')

# 3. 去重:同一文件内的重复关键词只保留一条记录
unique_df = exploded_df.drop_duplicates(subset=['filename', 'keywords'])

# 4. 按关键词分组,聚合对应的文件名列表
result_df = unique_df.groupby('keywords')['filename'].apply(list).reset_index()

# 5. 调整列名(可选,按需修改)
result_df.columns = ['关键词', '包含该关键词的文件名列表']

# 查看结果
print(result_df)

输出结果

关键词               包含该关键词的文件名列表
0   australia                [business101.txt]
1       boss                [business060.txt]
2       cash                [business049.txt]
3        eu                 [business075.txt]
4      famou                [business470.txt]
5       fuel  [business049.txt, business075.txt]
6    guilti                [business060.txt]
7      insur                [business060.txt]
8   investor                [business470.txt]
9        jet                 [business075.txt]
10    london                [business470.txt]
11      less                [business049.txt]
12     minist                [business075.txt]
13      mini                [business049.txt]
14       mull                [business075.txt]
15  product                [business049.txt]
16       pick                [business470.txt]
17       rais                [business101.txt]
18       rate                [business101.txt]
19      saudi                [business470.txt]
20      savoy                [business470.txt]
21        tax                [business075.txt]
22  european                [business075.txt]
23        us                 [business060.txt]
24       bmw                 [business049.txt]
25     anoth                [business060.txt]
26     plead                [business060.txt]
27  benchmark                [business101.txt]

内容的提问来源于stack exchange,提问作者TruongQuocAn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:35:19