python - 使用 numpy 数组修改 pandas dataframe 值

标签 python numpy pandas

我正在尝试使用 numpy 数组 [相同大小] 修改 pandas 数据框的值字段。这样的事情是行不通的

import pandas as pd
# create 2d numpy array, called arr
df = pd.DataFrame(arr, columns=some_list_of_names)
df.values = myfunction(arr)

还有其他选择吗?

最佳答案

.values 属性通常是一个副本 - 特别是对于混合数据类型(因此不能保证对其进行赋值 - 在新版本的 pandas 中这会引发)。

您应该分配给特定的列(注意顺序很重要)。

df = pd.DataFrame(arr, columns=some_list_of_names)
df[some_list_of_names] = myfunction(arr)

示例(在 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

关于python - 使用 numpy 数组修改 pandas dataframe 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28375794/

相关文章:

python - 两列匹配列表的两个元素

python - xlwings UDF 可以返回 numpy 数组列表吗?

Python:设置位数 (popcount)

python - 如何在 python 中使用 matplotlib 和 pandas 绘制 CSV 数据

python - 使用 ATLAS 或 OpenBLAS 的 Numpy?

Python - 将数据帧保存到 CSV "too many indices for array"错误

python - 按最小值分组并用另一列中的值填充 NA

python - Pandas 将行分组为列表并求和

python - 使用 tokenizer.encode_plus 时遇到问题

python - 在Python中跨不同模块记录到单个文件