相关疑难解决方法(0)

pandas iloc vs ix vs loc解释; 他们有什么不同?

有人能解释这三种切片方法有何不同?
我已经看过这些文档了,我已经看到了这些 答案,但我仍然发现自己无法解释三者是如何不同的.对我来说,它们在很大程度上似乎是可以互换的,因为它们处于较低的切片水平.

例如,假设我们想获得a的前五行DataFrame.这三个都是如何运作的?

df.loc[:5]
df.ix[:5]
df.iloc[:5]
Run Code Online (Sandbox Code Playgroud)

有人可以提出三种情况,其中使用的区别更清晰吗?

python indexing dataframe pandas

574
推荐指数
3
解决办法
42万
查看次数

Pandas - 获取给定列的第一行值

这似乎是一个非常简单的问题...但我没有看到我期待的简单答案.

那么,如何在Pandas的给定列的第n行获取值?(我对第一行特别感兴趣,但也会对更普遍的做法感兴趣).

例如,假设我想将Btime中的1.2值作为变量.

这是正确的方法吗?

df_test =

  ATime   X   Y   Z   Btime  C   D   E
0    1.2  2  15   2    1.2  12  25  12
1    1.4  3  12   1    1.3  13  22  11
2    1.5  1  10   6    1.4  11  20  16
3    1.6  2   9  10    1.7  12  29  12
4    1.9  1   1   9    1.9  11  21  19
5    2.0  0   0   0    2.0   8  10  11
6    2.4  0   0   0    2.4  10  12  15
Run Code Online (Sandbox Code Playgroud)

python indexing head pandas

236
推荐指数
8
解决办法
42万
查看次数

在逐行迭代时更新pandas中的数据帧

我有一个像这样的熊猫数据框(它是一个非常大的)

           date      exer exp     ifor         mat  
1092  2014-03-17  American   M  528.205  2014-04-19 
1093  2014-03-17  American   M  528.205  2014-04-19 
1094  2014-03-17  American   M  528.205  2014-04-19 
1095  2014-03-17  American   M  528.205  2014-04-19    
1096  2014-03-17  American   M  528.205  2014-05-17 
Run Code Online (Sandbox Code Playgroud)

现在我想逐行迭代,当我遍历每一行时,每行的值ifor 可以根据某些条件改变,我需要查找另一个数据帧.

现在,我如何在迭代时更新它.尝试了一些他们都没有工作的事情.

for i, row in df.iterrows():
    if <something>:
        row['ifor'] = x
    else:
        row['ifor'] = y

    df.ix[i]['ifor'] = x
Run Code Online (Sandbox Code Playgroud)

这些方法似乎都不起作用.我没有看到数据框中的值已更新.

python updates dataframe pandas

166
推荐指数
7
解决办法
18万
查看次数

.ix()总是优于.loc()和.iloc(),因为它更快并且支持整数和标签访问吗?

我正在学习Python pandas库.来自R背景,索引和选择功能似乎比它们需要的更复杂.我理解.loc()只是基于标签而.iloc()只是基于整数.

如果.ix()更快并支持整数和标签访问,为什么我应该使用.loc()和.iloc()?

python pandas

67
推荐指数
1
解决办法
7万
查看次数

将列按名称移动到pandas中的表格前面

这是我的df:

                             Net   Upper   Lower  Mid  Zsore
Answer option                                                
More than once a day          0%   0.22%  -0.12%   2    65 
Once a day                    0%   0.32%  -0.19%   3    45
Several times a week          2%   2.45%   1.10%   4    78
Once a week                   1%   1.63%  -0.40%   6    65
Run Code Online (Sandbox Code Playgroud)

如何按名称("Mid")将列移动到表的前面,索引0.这是它需要的样子:

                             Mid   Upper   Lower  Net  Zsore
Answer option                                                
More than once a day          2   0.22%  -0.12%   0%    65 
Once a day                    3   0.32%  -0.19%   0%    45
Several times a week          4   2.45%   1.10%   2%    78
Once a …
Run Code Online (Sandbox Code Playgroud)

python move shift dataframe pandas

61
推荐指数
7
解决办法
6万
查看次数

Pandas:通过行索引和列名称获取单元格值

假设我们有一个 pandas 数据框:

   name  age  sal
0  Alex   20  100
1  Jane   15  200
2  John   25  300
3   Lsd   23  392
4   Mari  21  380
Run Code Online (Sandbox Code Playgroud)

假设现在删除了几行,但我们不知道已删除的索引。例如,我们使用 删除行索引 1 df.drop([1])。现在数据框可以归结为:

  fname  age  sal
0  Alex   20  100
2  John   25  300
3   Lsd   23  392
4   Mari  21  380
Run Code Online (Sandbox Code Playgroud)

我想从行索引 3 和列“年龄”获取值。它应该返回 23。我该怎么做?

df.iloc[3, df.columns.get_loc('age')]不起作用,因为它将返回 21。我猜 iloc 采用连续行索引?

python pandas

11
推荐指数
1
解决办法
5万
查看次数

同时(“同时”)获取“ min”和“ idxmin”(或“ max”和“ idxmax”)?

我在想,如果有调用的可能性idxmin,并min在同一时间(在相同的呼叫/循环)。

假设以下数据框:

    id  option_1    option_2    option_3    option_4
0   0   10.0        NaN         NaN         110.0
1   1   NaN         20.0        200.0       NaN
2   2   NaN         300.0       30.0        NaN
3   3   400.0       NaN         NaN         40.0
4   4   600.0       700.0       50.0        50.0
Run Code Online (Sandbox Code Playgroud)

我想计算该系列的最小值(min)和包含最小值的列(idxminoption_

    id  option_1    option_2    option_3    option_4    min_column  min_value
0   0   10.0        NaN         NaN         110.0       option_1        10.0
1   1   NaN         20.0        200.0       NaN         option_2        20.0
2   2   NaN         300.0       30.0        NaN         option_3        30.0
3 …
Run Code Online (Sandbox Code Playgroud)

python performance pandas

6
推荐指数
2
解决办法
1382
查看次数

如何使用df.style根据整数位置(例如df.iloc [1,1])定义pandas数据框中特定单元格的颜色?

是否可以基于整数位置定义熊猫数据框中特定单元格的颜色,例如 df.iloc[1,1] 和熊猫样式?https://pandas.pydata.org/pandas-docs/stable/style.html

像下面这样的东西会很好,但不起作用。

def style_specific_cell(val):

    color = 'lightgreen'
    val.iloc[2, 8] = color
    return XYZ

df = df.style.applymap(style_specific_cell, subset=['Column1']
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

6
推荐指数
1
解决办法
5009
查看次数

通过整数位置和列标签获取标量(混合索引)

要获取整数位置的标量0和列标签'A'的数据帧df,我做链接的索引:df.iloc[0]['A']。这是有效的,但 Pandas 文档说应该避免链接索引

我能想到的另一种方法是df.iat[0, df.columns.get_loc('A')],与链式索引相比,它的类型太多了。有没有更短的方法来做到这一点?

注意:不推荐使用 .ix 索引器。

例子:

df=pd.DataFrame({'A':[10,20,30,40]}, index=[3,2,1,0])

    一种
------
3 10
2 20
1 30
0 40

0列中整数位置的标量A10而不是40
df.iat[0, df.columns.get_loc('A')]
Otuput:10

python pandas

5
推荐指数
1
解决办法
870
查看次数

Pandas 通过行号(不是行索引)和列名称获取单元格值

data = [['tom', 10], ['nick', 15], ['juli', 14]] 
df = pd.DataFrame(data, columns = ['Name', 'Age'], index = [7,3,9])
display(df)
df.iat[0,0]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想返回第一行中的年龄(基本上类似于 df.iat[0,'Age']。预期结果 = 10

感谢您的帮助!

python pandas

5
推荐指数
1
解决办法
7070
查看次数

标签 统计

pandas ×10

python ×10

dataframe ×4

indexing ×2

head ×1

move ×1

performance ×1

shift ×1

updates ×1