我目前迷失在熊猫文档的深处。我的问题是这样的:
我有一个简单的数据框
col1 col2
1 A
4 B
5 X
Run Code Online (Sandbox Code Playgroud)
我的目标是应用以下内容:
df['col1'] = df['col1'].apply(square)
Run Code Online (Sandbox Code Playgroud)
其中 square 是一个明确定义的函数。但是这个操作会抛出错误警告(并产生不正确的结果)
试图在来自 DataFrame 的切片副本上设置值。尝试使用 .loc[row_indexer,col_indexer] = value 代替
我无法理解这一点,也无法理解它指向的文档。我的工作流程是线性的(以防这使得更广泛的解决方案可行)。
熊猫 0.17.1 和 Python 2.7
非常感谢所有帮助。
我最近遇到了一些错误,因为 numpy 数组的形状为 (x,) - 这些可以通过下面的代码片段轻松修复
a = np.array([1,2,3,4]) #this form produced a bug
a.shape
>>> (4,)
a.shape = [4,1] #but this change fixed it
Run Code Online (Sandbox Code Playgroud)
但这确实让我想知道,为什么 (x,) 是一维数组的默认形状?
我已经使用 pandas 一段时间了,我意识到我使用
df.col
df['col']
Run Code Online (Sandbox Code Playgroud)
可以互换。它们实际上是一样的还是我错过了什么?
示例数据:
array(
[[ 1., 1.],
[ 2., 1.],
[ 0., 1.],
[ 0., 0.],
[ 0., 0.]])
Run Code Online (Sandbox Code Playgroud)
期望的结果
>>> [0.,0.]
Run Code Online (Sandbox Code Playgroud)
ie)最常见的一对.
看似不起作用的方法:
使用statisticsnumpy数组是不可用的.
使用scipy.stats.modeas作为返回每个轴上的模式,例如,它给出了我们的示例
mode=array([[ 0., 1.]])
Run Code Online (Sandbox Code Playgroud)