因此,我正在尝试创建一个python脚本,该脚本允许我在使用pandas创建的数据帧(masterfile)上执行SQL操作。数据帧从特定文件夹中找到的csv文件中提取其内容。 我能够成功地创建其他所有内容,但我在SQL操作部分遇到了麻烦。我正在尝试使用数据帧作为“数据库”,在这里我将使用我的SQL查询来拉取数据,但是我得到了一个"AttributeError:' dataframe‘object has no attribute 'cursor’“错误。 我没有看到很多pandas.read_sql_query()的例子,所以我很难理解我将如何在其中使用我的数据帧。
在这种情况下,如何避免警告SettingWithCopyWarning?
通常,使用以前创建的copy()的DataFrame就足够了。在这种情况下,这是没有意义的:
import pandas as pd
import numpy as np
df = pd.DataFrame({"a": [7, 2, 3], "b": [4, 5, 6], "c": [np.nan, np.nan, np.NaN]})
df.c.iloc[0] = 100
。
SettingWithCopyWarning:
A value is trying to be
不知道我是不是做错了什么,或者这是不是潘达斯的问题。我看到了一个我能解决的问题
使用. BUT 将单个单元格设置为可迭代的值(例如元组)。loc[]如果我首先使用[]设置整列,那么就不能再使用.loc[]将单个单元格设置为可迭代的。
例如,从一个4x3数据帧开始,其中填充的是None's:
In [1]: import pandas as pd
In [2]: nones = [None]*4
In [3]: df = pd.DataFrame(dict(A=nones,B=nones,C=nones))
In [4]: df
Out[4]:
A B C
0
我有一个包含数字和NaNs列的数据集。我想要创建一个新的虚拟变量列,以便进一步计算。显然有些地方不对劲,因为不管我做什么,假人都是1。
import pandas as pd
import numpy as np
all_air = pd.read_csv('small.csv')
all_air['D(0/1)']=np.nan
#all_air['C'].fillna(-1) #pandas will take NaN as 0 in calculation, right?
print all_air['C']
for
我正在获取SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy 这是我的数据帧(容量): A B C
我有一个Pandas DataFrame 'Date‘专栏,我正试图将它转换为datetime。它正在转换,并提高了"SettingWithCopyWarning“
我试着遵循其他很好的解释,比如:和其他解释,但我想不出答案。谢谢大家!
我的原始代码:
import numpy as np
import pandas as pd
data = pd.DataFrame(pd.read_excel('Restaurant Shifts Data.xlsx', na_values='-')) # (-) value in cash
data.
在被问到之前使用的来源:
我做到了所有这一切:
# sort the dataframe
df.sort(columns=['name'], inplace=True)
# set the index to be this and don't drop
df.set_index(keys=['name'], drop=False,inplace=True)
# get a list of names
names=df['name'].unique().tolist()
# now we can perform a lookup on
在使用了一段时间的csv库之后,我对熊猫还有点陌生。在下面的代码中,我基本上是在获取行的条形码列中的值,该行的SKU号与itemsku中的值相同。它一直工作到条形码变量的赋值。它指出了以下错误,ValueError: At based indexing on an integer index can only have integer indexers,正如我说的,我是熊猫新手,所以很可能犯了一个绝对的错误,任何帮助都是很棒的。
def getBarcode(itemsku, newdbpath):
df = pd.read_csv(newdbpath)
row = df.lo
我正在使用IterativeImputer来处理数据集中丢失的数据,这似乎是一个不错的资源。不过,我如何评估这种回归的性能呢?有没有一种方法,我可以使用一些性能指标,如r,2或RMSE与此输入?
import numpy as np
import pandas as pd
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer
from sklearn.ensemble import RandomForestRegressor
df = pd.D
通常,当我想要迭代csv文件时,如下所示:
PRODUCTID|PRODUCTNAME|TYPE|PRODUCTDESCRIPTION
1001|Apple|Fruit|McIntosh apple
1002|Pear|Fruit|Rare name pear
1003|Potato|Root|Common potato
1004|Banana|Fruit|Banana from an island
如果我想做一个过滤器,我会这样做:
import pandas
my_products = pandas.read_csv( ... )
fruits = my_products[ my_pro
我正在尝试为我的工作建立一个机器学习算法。我用于训练和测试的数据有17k行和20列。我试着在另外两个列的基础上添加一个新列,但是我编写的for循环太慢了(需要3秒才能执行) for i in range(0, len(model_olculeri)):
if (model_olculeri["Bel"][i] != 0) and (model_olculeri["Basen"][i] != 0):
sum_column = (model_olculeri["Bel"][i]) / (model_olculeri["
我每天在工作中使用熊猫。我最近将0.15.1从0.13.1升级到了0.15.1,现在,当迭代相对较小的DataFrames时,一堆代码太慢了,无法完成。
(我意识到通常有更好/更快的方法来完成DataFrame上的迭代,但有时有一个for循环结构是非常清晰和简洁的)
当混合类型时,我将问题归结为一个问题:
def iterGet(df,col):
for i in df.index:
tmp = df[col].loc[i]
def iterLocSet(df,col,val):
for i in df.index:
#df[col].loc[
我有下面的剧本。
我被困在最后一条线上了。因此,如果列recencypct <=0.25,它将在第一个四分位数,当它超过0.75,它在第四个四分位数。
我试图添加多个条件来计算第二和第三四分位数。
第二四分位数>0.25,<= 0.5第三四分位数>0.5,<=0.75
但是,当我尝试最后一行添加这些多个条件时,我得到了错误:
TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool]
有人有什么想法吗?
import pandas as pd
path = '
我在将类似于对象的系列分配给Pandas dataframe的一个片段时遇到了问题。也许我并没有像它想要的那样使用Datafarme,所以我们会非常感谢您的一些启发。我已经读过以下文章:
就我所理解的使用一个.loc调用来调用切片的方式而言,它确实确保了我没有得到数据的副本。显然,原始数据也会被修改,但我得到的不是预期的数据,而是NaN值。请参阅附加的代码片段。
是否必须对要更改的每个值遍历所需的数据部分,并使用.set_value(row_idx、col_idx、val)方法?
事先表示亲切的问候和感谢。
马库斯
In [1]: import pandas as pd
In [2]:
我刚开始学习Pandas,我不明白当索引列表包含多种类型的对象时,切片是如何工作的。 import pandas as pd
arr = pd.Series([10, 20, 30, 40], index = [2, 3, 'six', 'eight'])
arr[2:3] #Output -- 30
arr[3:'six'] #TypeError: cannot do slice indexing on <class 'pandas.core.indexes.base.Index'> with these inde
我必须编写一个函数来替换熊猫系列的所有值,这些值都小于该系列的平均值。数列和数a应该是函数的参数。例如,如果序列为10,11,12,3,4,5, 7,9,15,20,a=7,则结果序列应为10.0,11.0,12.0,9.6,9.6,9.6,9.0,9.0,15.0,20.0。
我想知道如何使用series.replace函数将低于平均值的值替换为平均值,我迄今编写的代码如下:
import pandas as pd
def ex1(L,a):
#Creating the Series
sr = pd.Series(L)
result = sr.mean()
#re
我有一个数据帧,比如:
a b c d e
a 1 2 3 5 2
b 2 1 3 4 3
c 2 4 1 5 6
d 1 5 6 1 1
e 2 3 4 1 1
(1)我需要找到索引(i,i)以外的MAX和MIN值。对于这个例子:我需要得到的解为Max: 6,在(c,e),(d,c)处出现2次。对于最小值也是如此。我如何使用Pandas/Python来做这件事?
(2)类似地,如果一个指定了行(或列),我需要得到它的最大和最小值,而不是行索引(或列索引)。因此,如果我指定行a,我需要将MAX val设为5,并出现在(a,b),(a,e)处。谢谢。