我有一个包含以下列的 DataFrame
:
columns = ['Autor', 'Preţul', 'Suprafaţa totală', 'Etaj', 'Etaje', 'Tipul casei', 'Tipul de camere','Numărul de camere','Starea apartamentului', 'Planificare', 'Tipul clădirii', 'Sectorul', 'Strada', 'Numărul casei']
df = pd.DataFrame(columns=columns)
我想向这个DataFrame
逐行添加一些字典,例如我想在第一行添加这个字典:
{'Autor': nan,
'Balcon/lojă': '2',
'Etaj': '1',
'Grup sanitar': 'separat',
'Locul de amplasare în casă': 'In mijlocul casei',
'Numărul casei': nan,
'Numărul de camere': '4 şi mai multe camere',
'Parcare': 'deschisă',
'Preţul': nan,
'Sectorul': nan,
'Strada': nan,
'Suprafaţa totală': '90 m²',
'Tipul clădirii': 'Dat în exploatare'}
不在 DataFrame
列中的字典键的值应设置为 NaN
值。字典只有一部分列名作为键。
例如第二个字典:
{'Autor': nan,
'Numărul casei': nan,
'Numărul de camere': '3 camere',
'Preţul': nan,
'Sectorul': nan,
'Strada': nan,
'Suprafaţa totală': '103 m²',
'Tipul clădirii': 'Dat în exploatare'}
字典是 for 循环的结果,它们应该作为唯一行添加。
最佳答案
使用 pandas.DataFrame.from_dict
替代构造函数。将您的“行”构建到列表中,开始于:
In [22]: import numpy as np
In [23]: nan = np.nan
In [24]: rows = []
In [25]: rows.append({'Autor': nan,
...: 'Balcon/lojă': '2',
...: 'Etaj': '1',
...: 'Grup sanitar': 'separat',
...: 'Locul de amplasare în casă': 'In mijlocul casei',
...: 'Numărul casei': nan,
...: 'Numărul de camere': '4 şi mai multe camere',
...: 'Parcare': 'deschisă',
...: 'Preţul': nan,
...: 'Sectorul': nan,
...: 'Strada': nan,
...: 'Suprafaţa totală': '90 m²',
...: 'Tipul clădirii': 'Dat în exploatare'})
In [26]: rows.append({'Autor': nan,
...: 'Numărul casei': nan,
...: 'Numărul de camere': '3 camere',
...: 'Preţul': nan,
...: 'Sectorul': nan,
...: 'Strada': nan,
...: 'Suprafaţa totală': '103 m²',
...: 'Tipul clădirii': 'Dat în exploatare'})
然后,只需确保传递适当的“orient”参数即可:
In [28]: pd.DataFrame.from_dict(rows, orient='columns')
Out[28]:
Autor Balcon/lojă Etaj Grup sanitar Locul de amplasare în casă \
0 NaN 2 1 separat In mijlocul casei
1 NaN NaN NaN NaN NaN
Numărul casei Numărul de camere Parcare Preţul Sectorul Strada \
0 NaN 4 şi mai multe camere deschisă NaN NaN NaN
1 NaN 3 camere NaN NaN NaN NaN
Suprafaţa totală Tipul clădirii
0 90 m² Dat în exploatare
1 103 m² Dat în exploatare
编辑
实际上,只是注意到普通的构造函数工作得很好,不需要任何参数!
In [31]: pd.DataFrame(rows)
Out[31]:
Autor Balcon/lojă Etaj Grup sanitar Locul de amplasare în casă \
0 NaN 2 1 separat In mijlocul casei
1 NaN NaN NaN NaN NaN
Numărul casei Numărul de camere Parcare Preţul Sectorul Strada \
0 NaN 4 şi mai multe camere deschisă NaN NaN NaN
1 NaN 3 camere NaN NaN NaN NaN
Suprafaţa totală Tipul clădirii
0 90 m² Dat în exploatare
1 103 m² Dat în exploatare
关于python - 如何将字典作为一行添加到 DataFrame 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42632470/