试图将字典项与另一列中的字符串值匹配。样本数据:
df = A B
0 'a' {'a': '2', 'b': '5'}
1 'c' {'a': '2', 'b': '16', 'c': '32'}
2 'a' {'a': '6', 'd': '23'}
3 'd' {'b': '4', 'd': '76'}
我想把下面的话说出来:
Df = A B
0 'a' {'a': '2'}
1 'c' {'c': '32'}
2 'a' {'a': '6'}
3 'd' {'d': '76'}
我不是在一个数据框里得到的:
d = {k: v for k, v in my_dict.items() if k == 'a'}
一行,但我不能让这个工作,公平地说,我不希望它直接工作,但希望我是接近:
Test_df['B'] = {k: v for k, v in test_df['B'].items() if k == test_df['A']}
我得到以下错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我需要做些什么才能让它工作,或者有更好更有效的方法吗?
3条答案
按热度按时间bfhwhh0e1#
你可以在
zip
中使用列表解析:输出:
chy5wohz2#
您可以使用以下命令在pandas中简单有效地完成此操作:
输出:
请注意,如果键不存在,则不会进行错误检查
swvgeqrz3#