Bob*_*obo 6 python numpy pandas
我正在尝试使用numpy数组[相同大小]修改pandas数据帧的values字段.这样的事情不起作用
import pandas as pd
# create 2d numpy array, called arr
df = pd.DataFrame(arr, columns=some_list_of_names)
df.values = myfunction(arr)
Run Code Online (Sandbox Code Playgroud)
任何替代品?
And*_*den 12
该.values属性通常是一个副本 - 特别是对于混合dtypes(因此不能保证它的分配工作 - 在新版本的pandas中会引发这种情况).
您应该分配给特定的列(注意顺序很重要).
df = pd.DataFrame(arr, columns=some_list_of_names)
df[some_list_of_names] = myfunction(arr)
Run Code Online (Sandbox Code Playgroud)
示例(在pandas 0.15.2中):
In [11]: df = pd.DataFrame([[1, 2.], [3, 4.]], columns=['a', 'b'])
In [12]: df.values = [[5, 6], [7, 8]]
AttributeError: can't set attribute
In [13]: df[['a', 'b']] = [[5, 6], [7, 8]]
In [14]: df
Out[14]:
a b
0 5 6
1 7 8
In [15]: df[['b', 'a']] = [[5, 6], [7, 8]]
In [16]: df
Out[16]:
a b
0 6 5
1 8 7
Run Code Online (Sandbox Code Playgroud)