Questions tagged «chained-assignment»

23
在Python Pandas中向现有DataFrame添加新列
我有以下索引的DataFrame,其中的命名列和行不是连续数字: a b c d 2 0.671399 0.101208 -0.181532 0.241273 3 0.446172 -0.243316 0.051767 1.577318 5 0.614758 0.075793 -0.451460 -0.012493 我想'e'在现有数据框架中添加一个新列,并且不想更改数据框架中的任何内容(即,新列始终与DataFrame具有相同的长度)。 0 -0.335485 1 -1.166658 2 -0.385571 dtype: float64 如何e在上述示例中添加列?

15
如何处理熊猫中的SettingWithCopyWarning?
背景 我刚刚将熊猫从0.11升级到0.13.0rc1。现在,该应用程序弹出了许多新警告。其中之一是这样的: E:\FinReporter\FM_EXT.py:449: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_index,col_indexer] = value instead quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE 我想知道到底是什么意思?我需要改变什么吗? 如果我坚持使用该如何警告quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE? 产生错误的功能 def _decode_stock_quote(list_of_150_stk_str): """decode the webpage and return dataframe""" from cStringIO import StringIO str_of_all = "".join(list_of_150_stk_str) quote_df …


7
将特定的选定列提取到新DataFrame中作为副本
我有一个带有4列的pandas DataFrame,我想创建一个只有三个列的新 DataFrame 。这个问题类似于:从数据框中提取特定的列,但对于不是R的熊猫来说。以下代码不起作用,会引发错误,并且肯定不是熊猫的方式。 import pandas as pd old = pd.DataFrame({'A' : [4,5], 'B' : [10,20], 'C' : [100,50], 'D' : [-30,-50]}) new = pd.DataFrame(zip(old.A, old.C, old.D)) # raises TypeError: data argument can't be an iterator 熊猫式的做法是什么?

1
熊猫使用什么规则生成视图与副本?
我对Pandas决定从数据框中进行选择是原始数据框的副本或原始数据视图时使用的规则感到困惑。 例如,如果我有 df = pd.DataFrame(np.random.randn(8,8), columns=list('ABCDEFGH'), index=range(1,9)) 我了解a会query传回副本,因此类似 foo = df.query('2 < index <= 5') foo.loc[:,'E'] = 40 将对原始数据帧无效df。我也了解标量或命名切片返回一个视图,因此对它们的赋值(例如 df.iloc[3] = 70 要么 df.ix[1,'B':'E'] = 222 会改变df。但是当涉及到更复杂的案件时,我迷失了。例如, df[df.C <= df.B] = 7654321 变化df,但是 df[df.C <= df.B].ix[:,'B':'E'] 才不是。 是否有一个熊猫正在使用的简单规则,我只是想念它?在这些特定情况下发生了什么;尤其是,如何更改满足特定查询的数据框中的所有值(或值的子集)(就像我在上面的最后一个示例中尝试的那样)? 注意:这和这个问题不一样;并且我已经阅读了文档,但并未对此有所启发。我还阅读了有关此主题的“相关”问题,但我仍然缺少Pandas使用的简单规则,以及如何将其应用于(例如)修改值(或值的子集)在满足特定查询的数据框中。

11
Python:Pandas Dataframe如何将整个列与标量相乘
如何将数据框给定列的每个元素与标量相乘?(我曾尝试过寻找SO,但似乎找不到正确的解决方案) 做类似的事情: df['quantity'] *= -1 # trying to multiply each row's quantity column with -1 给我警告: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead 注意:如果可能的话,我不想遍历数据框并执行类似的操作...因为我认为整个列上的任何标准数学运算都可以实现,而不必编写循环: for idx, row in df.iterrows(): df.loc[idx, 'quantity'] *= -1 编辑: 我正在跑步0.16.2熊猫 …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.