我有一本字典:
employer =
{'CrntEmp_city': ('XXX', 'XXX'),
'CrntEmp_cntry': ('XXX', 'XXX'),
'CrntEmp_orgNm': ('XXXX LLC', 'YYYY LLC'),
'CrntEmp_orgPK': ('1234567891', '1234567899'),
'CrntEmp_postlCd': ('12345', '12345'),
'CrntEmp_state': ('AK', 'AK'),
'CrntEmp_str1': ('999 XXX', '999 XXX'),
'CrntEmp_str2': ('XXXX', 'XXXX')}
我想将其读入一个DataFrame,其中一行八列与键对应。但无论我如何尝试,pandas 总是会给我两列(通过在逗号所在的位置分割元组)。示例:
pd.DataFrame([tuple(i) for i in employ.values()])
returns
0 1
0 XXXX LLC YYYY LLC
1 XXXX XXXX
2 999 XXX 999 XXX
3 XXX XXX
4 12345 12345
5 XXX XXX
6 AK AK
7 1234567891 1234567899
我想要的是这样的:
0 1
0 (XXXX LLC, YYYY LLC) (XXXX, XXXX)
etc.
因此该命令失败:
pd.DataFrame([tuple(i) for i in employ.values()],columns=employ.keys(),index=[0])
有什么想法吗?
最佳答案
你基本上想要这样的东西:pd.DataFrame({'col1': [(a, b)], 'col2': [(c, d)]})
您可以在 Python 2 中使用字典理解来实现这一点,如下所示。对于 Python 3,请改用 employer.iter()
。
>>> pd.DataFrame({k: [tuple(v)] for k, v in employer.iteritems()})
CrntEmp_city CrntEmp_cntry CrntEmp_orgNm CrntEmp_orgPK CrntEmp_postlCd CrntEmp_state CrntEmp_str1 CrntEmp_str2
0 (XXX, XXX) (XXX, XXX) (XXXX LLC, YYYY LLC) (1234567891, 1234567899) (12345, 12345) (AK, AK) (999 XXX, 999 XXX) (XXXX, XXXX)
关于python - 元组中的 Pandas DataFrame 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36946677/