python - 如何防止多值字典对象将每个单词拆分为单独的字母字符串?

标签 python python-3.x string pandas

我有一个如下所示的字典对象:

my_dict = {123456789123: ('a', 'category'),
           123456789456:('bc','subcategory'),123456789678:('c_d','subcategory')}

下面的代码提取 df 中列标题中的整数并将其与字典中的键进行比较,并通过选择第二个值作为新 df 的列和第一个值作为 df 内的值来创建一个新数据帧。

代码:

names = df.columns.values
new_df = pd.DataFrame()
for name in names:    
    if ('.value.' in name) and df[name][0]:
        last_number = int(name[-13:])
        print(last_number)
        key, value = my_dict[last_number]
        try:
            new_df[value][0] = list(new_df[value][0]) + [key]
        except:
            new_df[value] = [key]

new_df:

   category                subcategory
0    a                     [b, c, c_d]

我不确定代码中的原因是什么,但如何防止 bc split ?

编辑:

上面的示例 df:

data.value.123456789123    data.value.123456789456     data.value.123456789678   
    TRUE                      TRUE                        TRUE              

new_df 应如下所示:

   category                subcategory
0    a                     [bc, c_d]

最佳答案

list(new_df[value][0]) 将字符串分解为字符列表,这就是您获得单个字符的原因。

list(new_df[value][0]) 必须为 [new_df[value][0]]。或者,更好的是,list(new_df[value][0]) + [key] 必须是 [new_df[value][0], key]

关于python - 如何防止多值字典对象将每个单词拆分为单独的字母字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54084310/

相关文章:

javascript - 设置 img src 不会生成 GET 请求

python - bs4.FeatureNotFound : Couldn't find a tree builder with the features you requested: html5lib

java - java回文程序中使用大写字母出错

python - Mamba 安装 FASTBOOK 导致提供程序安装问题

python - 在 Python 中将 Excel 另存为 HTML

python - 如何限制 matplotlib 极坐标图中的轴

python - 在 django 网页中显示 ip 摄像头实时反馈

python - 有多个条件时替换numpy数组中的元素

java - 如何设置公共(public)字符串的文本

string - R:子集匹配的单词