python - 通过 multiindex 将 Series 分配给 DataFrame
问题描述
df_a = pd.DataFrame(data = [[1,2,3], [1,2,3], [1,2,3], [1,2,3]], index = [['a', 'a', 'a', 'a'], ['b', 'b', 'b', 'b'] ], columns=['A', 'B', 'C'])
A B C
a b 1 2 3
b 1 2 3
b 1 2 3
b 1 2 3
我有系列:
df_b = pd.Series(data = [1,2,3, 4], index = [['a', 'a', 'a', 'a'], ['b', 'b1', 'b2', 'b3'] ])
a b 1
b1 2
b2 3
b3 4
我正在尝试将 Series 分配给 DataFrame
idx = df_a.index.intersection(df_b.index)
df_a.loc[idx]['new_column'] = df_b.loc[idx]
但我得到:
A B C
a b 1 2 3
b 1 2 3
b 1 2 3
b 1 2 3
我希望得到:
A B C new_column
a b 1 2 3 1
b 1 2 3 1
b 1 2 3 1
b 1 2 3 1
知道有什么问题吗?
解决方案
直接赋值就行了。默认情况下,系列分配按索引对齐:
df_a['new_column'] = df_b
print(df_a)
A B C new_column
a b 1 2 3 1
b 1 2 3 1
b 1 2 3 1
b 1 2 3 1
推荐阅读
- excel - 如果我在带箭头的文本框中输入“V”,想要使用左函数突出显示该行
- javascript - 将firebase电话号码保存到本地存储变量
- php - 使用静态类成员作为超级全局变量的php线程安全
- apache-kafka - Kafka生产者表现不佳
- javascript - JavaScript 原型问题:我不明白这个错误
- delphi - 输入时如何填充 ComboBox?
- jquery - 将类型文件中的数据发送到 ASP.NET MVC 中的控制器
- android - 根据位置滚动Recyclerview时获取数据
- python - 如何生成排列列表列表
- python - 有没有什么节省内存的方法来计算两个稀疏矩阵的皮尔逊相关系数?