python - 使用字典作为参数映射 Pandas 系列,其中值是元组

标签 python pandas dictionary tuples

我正在尝试用字典映射 df 的一列。我的字典包含元组作为值,我只想要元组的第一个元素。我怎样才能实现这一目标?

my_dict = {'foo': (1, 0.1)}
df['original_column'] = 'foo'

到目前为止我得到了什么:

df['mapped column'] = (1, 0.1)

我想要什么:

df['mapped column'] = 1

有什么想法吗?

最佳答案

使用Series.map通过字典理解创建的新字典来获取元组的第一个值:

df = pd.DataFrame({
'original_column':['foo','bar','baz']
})

my_dict = {'foo': (1, 0.1), 'bar':(2,0.5),'baz':(5,6)}
d = {k:v[0] for k, v in my_dict.items()}
df['mapped column'] = df['original_column'].map(d)
print (df)
  original_column  mapped column
0             foo              1
1             bar              2
2             baz              5

另一种解决方案是映射原始数据并通过 str[0] 选择元组的第一个值,但如果 DataFrame 较大,性能会更差:

my_dict = {'foo': (1, 0.1), 'bar':(2,0.5),'baz':(5,6)}
df['mapped column'] = df['original_column'].map(my_dict).str[0]
print (df)
  original_column  mapped column
0             foo              1
1             bar              2
2             baz              5

关于python - 使用字典作为参数映射 Pandas 系列,其中值是元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59224268/

相关文章:

python - 我在 Python 3 的字典中调用函数

python - 从 JSON 到 CSV 的字典

python - 如何在 scikit 的管道中添加过采样/欠采样过程?

python - 固定装置的 Django 自然键给出反序列化错误

python - 将具有时间戳值的多个列转换为 GMT 时间,而不使用 pandas 中的 DateTimeIndex

python - 创建比例数据框

python - pip 设置和设置 PYTHONPATH

pandas - "transpose" Pandas 系列

python - 是否有类似字典的数据结构允许搜索 'key' 和 'value'

java - 从 HashMap 中获取特定数据