草庐IT

pyhton_Pandas

全部标签

python - 遍历 pandas 中的行以检查条件

我在Pandas中有以下DF。+-------+-------+|Col_A|Col_B|+-------+-------+|1234|||6267|||6364|||573|||0|||838|||92|||3221||+-------+-------+Col_B应填充True或False值。默认情况下,它是False,但是当第一个0已经被“看到”时,其余的DF应该是True。DF有超过100000行。自从Col_A中出现第一个“0”值以来,将col_B中的值设置为等于“True”的最快方法是什么?+-------+--------+|Col_A|Col_B|+-------+---

python - 高效地将值从一列替换为另一列 Pandas DataFrame

我有一个像这样的PandasDataFrame:col1col2col310.20.30.320.20.30.3300.40.44000.3500060.10.40.4仅当col1值等于0时,我想用第二列(col2)中的值替换col1值,之后(对于剩余的零值),再次执行此操作,但使用第三列(col3)。期望的结果是下一个:col1col2col310.20.30.320.20.30.330.40.40.440.300.3500060.10.40.4我使用pd.replace函数完成了它,但它似乎太慢了。我认为必须有一种更快的方法来完成它。df.col1.replace(0,df.col

python - Aggfunc 的 Pandas 数据透视表列表

Agg函数的Pandas数据透视表字典我正在尝试在旋转期间计算3个aggregative函数:计数均值标准差这是代码:n_page=(pd.pivot_table(Main_DF,values='SPC_RAW_VALUE',index=['ALIAS','SPC_PRODUCT','LABLE','RAW_PARAMETER_NAME'],columns=['LOT_VIRTUAL_LINE'],aggfunc={'N':'count','Mean':np.mean,'Sigma':np.std}).reset_index())我得到的错误是:KeyError:'Mean'如何计算这

python - 在 Pandas 中使用 groupby 来计算一列中与另一列相比的内容

也许groupby是错误的方法。似乎它应该工作,但我没有看到它...我想按结果对事件进行分组。这是我的数据框(df):StatusEventSUCCESSRunSUCCESSWalkSUCCESSRunFAILEDWalk这是我想要的结果:EventSUCCESSFAILEDRun21Walk01我正在尝试制作一个分组对象,但我不知道如何调用它来显示我想要的内容。grouped=df['Status'].groupby(df['Event']) 最佳答案 试试这个:pd.crosstab(df.Event,df.Status)Sta

python - Pandas - 使用 .isnull()、notnull()、dropna() 删除缺少数据的行不起作用

这真的很奇怪。我尝试了几种从Pandas数据框中删除缺少数据的行的方法,但它们似乎都不起作用。这是代码(我只是取消注释使用的一种方法-但这些是我在不同修改中使用的三种-这是最新的):importpandasaspdTest=pd.DataFrame({'A':[1,2,3,4,5],'B':[1,2,'NaN',4,5],'C':[1,2,3,'NaT',5]})print(Test)#Test=Test.ix[Test.C.notnull()]#Test=Test.dropna()Test=Test[~Test[Test.columns.values].isnull()]print"

python - PyInstaller with Pandas 创建超过 500 MB 的 exe

我尝试使用PyInstaller3.2.1创建一个exe文件,出于测试目的,我尝试为以下代码制作一个exe:importpandasaspdprint('helloworld')经过相当长的时间(15分钟以上),我完成了620MB大小的dist文件夹并构建了150MB。我在Windows上工作,使用Python3.5.2|Anaconda自定义(64位)。可能值得注意的是,在dist文件夹中,mkl文件占近300MB。我使用“pyinstaller.exefoo.py”运行pyinstaller。我尝试使用--exclude-module来排除一些依赖项,但最终还是得到了巨大的文件。无

python - 在 Pandas 数据框 boolean 索引中使用 "opposite boolean"的正确方法

我想使用boolean索引,检查我的数据框中特定列不具有NaN值的行。所以,我做了以下事情:importpandasaspdmy_df.loc[pd.isnull(my_df['col_of_interest'])==False].head()查看该数据框的片段,仅包括不是NaN的值(大多数值是NaN)。它有效,但似乎不够优雅。我想输入:my_df.loc[!pd.isnull(my_df['col_of_interest'])].head()但是,这产生了一个错误。我也花了很多时间在R上,所以也许我把事情弄糊涂了。在Python中,我通常会尽可能地使用语法“not”。例如,ifxis

python - 连接 Pandas 数据框中的所有列

我有多个pandas数据框,它们可能有不同数量的列,这些列的数量通常在50到100之间变化。我需要创建一个最后一列,它只是所有列的连接。基本上,列第一行中的字符串应该是所有列第一行中字符串的总和(连接)。我在下面写了循环,但我觉得可能有更好更有效的方法来做到这一点。关于如何做到这一点的任何想法num_columns=df.columns.shape[0]col_names=df.columns.values.tolist()df.loc[:,'merged']=""foreach_col_indinrange(num_columns):print('Concatenating',col

python - 设置 IntelliJ/Pycharm 处理 pandas "Unresolved references"警告

每当我尝试访问Series或DataFrame的非方法属性(例如columns或loc)时,IntelliJ都会向我抛出“未解析的引用”警告不会使我的代码崩溃,但看起来很烦人。我不想禁用此检查,并且我想避免在我的代码中添加抑制。我已经设置了调试器的“为代码洞察收集运行时类型信息”选项,但这没有用。我还尝试在“检查”选项卡的“忽略引用”列表中添加要忽略的引用,但我尝试的任何操作似乎都不起作用。我收到的警告类似于Cannotfindreferencelocin'Series|系列'. 最佳答案 当PyCharm的自动完成功能无法确定我的

python - 使用 pandas 为系列分配时间戳值会创建一个 int 而不是

在Python中,Pandas:g=pd.Series(dict(a=5,b=datetime(2018,1,1)))g['datetime']=pd.Timestamp('2018-01-02')g返回:a5b2018-01-0100:00:00datetime1514851200000000000dtype:object任何人都知道为什么时间戳在这里转换为它的int值,以及如何避免这个问题并正确地将时间戳附加到系列? 最佳答案 我同意@MrE,他说:Ithinkitmakessense:5isnotadatetimeobject