【发布时间】:2019-01-08 01:57:58
【问题描述】:
我有一个如下所示的字典对象:
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 分裂?
编辑:
上面的例子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]。 -
[new_df[value][0], key]这行得通!如果你回答我会接受
标签: python python-3.x string pandas