如您所见,数组已被复制。
import pandas as pd
import numpy as np
foo = np.array([['a', 'b'],['c', 'd']],dtype='U32')
df_foo = pd.DataFrame(data=foo, copy=False)
foo[0,0]='different'
print(df_foo.values)
返回
[['a' 'b']
['c' 'd']]
此外,foo
有dtype='<U32'
而df_foo.values
有dtype=object
。我不需要问题的解决方案,我更好奇是否可能,如果没有,为什么不呢?
答案 0 :(得分:0)
是的,只需删除copy = False,然后它就不是副本。所以只需替换
df_foo = pd.DataFrame(data=foo, copy=False)
与
df_foo = pd.DataFrame(data=foo)
它对我有用。