此案的结果:
df = _pd.DataFrame({'a':['1','2','3']})
df['b'] = _np.nan
for index in df.index:
df.loc[index, 'b'] = [{'a':1}]
是:
a b
0 1 {'a': 1}
1 2 [{'a': 1}]
2 3 [{'a': 1}]
此案的结果:
df = _pd.DataFrame({'a':[1,2,3]})
df['b'] = _np.nan
for index in df.index:
df.loc[index, 'b'] = [{'a':1}]
是:
a b
0 1 {'a': 1}
1 2 {'a': 1}
2 3 {'a': 1}
为什么?
_pd.__version__
'0.23.4'
编辑:我想添加版本号,因为这可能是一个错误。在我看来,这是合理的。但是,我们在stackoverflow.com上拥有的这个新的手动系统不会让我这样做;因此,我要添加此编辑以满足字符要求。
答案 0 :(得分:2)
我认为这是由于将object
分配给float
类型columns
时的类型转换引起的,第一项需要将整个列类型从float转换为object,然后整个column
变成了object
,并且index
的数字1,2
将是正确的类型assign
,因为column
本身已经变成了{{1} }
object
此外,我认为这可能属于主题https://github.com/pandas-dev/pandas/issues/11617