pandas - 从具有部分相同值的字典创建 DataFrame
问题描述
我正在使用一个函数来创建一个包含键和值的字典。有些值是唯一的,有些则不是。实际上我想使用所有唯一值作为索引和键作为列名,如果键:值对存在,请在此单元格中填写“x”。
伪代码:
def some_function():
dict = create a dictionary
print(dict)
dataframe = create_Dataframe
print(data_frame)
out:
{k1: [1,2,3,4], k2: [2,3,5,6]}
k1 k2
1 x NaN
2 x x
3 x x
4 x Nan
5 NaN x
6 NaN x
感谢大家!
解决方案
诀窍是创建一个字典,其中键为元组,(i, j)
其中i
值将在索引中j
结束,值将在列中结束。 pd.Series
构造函数将从第一级和第二级pd.MultiIndex
的元组中生成一个。当我们都在正确的地方。i
j
unstack
匹配OP输出
pd.Series({(v, k): 'x' for k in out for v in out[k]}).unstack()
k1 k2
1 x NaN
2 x x
3 x x
4 x NaN
5 NaN x
6 NaN x
1 和 0(更合理,imo)
pd.Series({(v, k): 1 for k in out for v in out[k]}).unstack(fill_value=0)
k1 k2
1 1 0
2 1 1
3 1 1
4 1 0
5 0 1
6 0 1
设置
out = {'k1': [1,2,3,4], 'k2': [2,3,5,6]}
推荐阅读
- python - 将 CSV 批量转换为 XLSX,在 python 中保留子文件夹结构
- javascript - X秒后用javascript关闭打开的窗口(打印一个div)
- javascript - 为什么 TypeScript 不强制执行 async/await 承诺?
- php - Amazon Athena“打开 Hive 拆分时出错”访问被拒绝错误
- flutter - Flutter 学习路线图
- excel - 使用 VBA 宏在 Excel 中查找替换希腊字符
- python - 定义 Glop Solver 约束时出现“TypeError:'int' object is not subscriptable”?
- python - Python中有用户提供的键功能的字典吗?
- salesforce - 将自定义设置元数据部署到“企业”组织时出错 - Salesforce
- r - 积分和数值优化 (nlminb) R