我有一个dictionary对象,如下所示:
my_dict = {123456789123: ('a', 'category'),
123456789456:('bc','subcategory'),123456789678:('c_d','subcategory')}
下面的代码提取df中列标题中的整数并将其与字典中的键进行比较,然后通过选择第二个值作为新df的列,选择第一个值作为df中的值来创建新的dataframe
代码:
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]
新数据框:
category subcategory
0 a [b, c, c_d]
我不确定是什么导致了我的代码中出现这种情况,但是如何防止bc
分裂呢
编辑:
上面的示例:
data.value.123456789123 data.value.123456789456 data.value.123456789678
TRUE TRUE TRUE
新的数据框应如下所示:
category subcategory
0 a [bc, c_d]
使用
DataFrame
构造函数和groupby
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]
相关问题 更多 >
编程相关推荐