python - Pandas 中的索引错误

标签 python pandas data-science

我无法找出索引中的错误。我相信这一定是个愚蠢的错误。我想将那些“ block ”大小为 1 的行的“td”值设置为 0。我首先找出这些行,然后使用这些索引将列“td”的值设置为 0。 这是示例数据集。这里,除了第 5、7、8 号 block 外,所有其他 block 值都应在“td”列中设置为 0。

    Sid     Itemid  Block       td
0     1  214536502      1  180.591
1     1  214536500      2    37.13
2     1  214536506      3  133.308
3     1  214577561      4      NaN
4     2  214662742      5   41.759
5     2  214662742      5   78.073
6     3  214576500      6      NaN
7     4  214821275      7   26.002
8     4  214821275      7   28.199
9     5  214821371      8   42.289
10    5  214821371      8   45.193

Here is my code. I'm getting unexpected output.

j=k.groupby('Block').Sid.count()==1
te=k['Block'][j[j].index].index
k['td'][te]=0

预期输出-

    Sid     Itemid  Block       td
0     1  214536502      1       0
1     1  214536500      2       0
2     1  214536506      3       0
3     1  214577561      4       0
4     2  214662742      5   41.759
5     2  214662742      5   78.073
6     3  214576500      6       0
7     4  214821275      7   26.002
8     4  214821275      7   28.199
9     5  214821371      8   42.289
10    5  214821371      8   45.193

最佳答案

这是你完成作业的方式:

k.ix[(k.groupby('Block').Sid.transform('count') == 1), 'td'] = 0

>>> k
    Sid     Itemid  Block      td
0     1  214536502      1   0.000
1     1  214536500      2   0.000
2     1  214536506      3   0.000
3     1  214577561      4   0.000
4     2  214662742      5  41.759
5     2  214662742      5  78.073
6     3  214576500      6   0.000
7     4  214821275      7  26.002
8     4  214821275      7  28.199
9     5  214821371      8  42.289
10    5  214821371      8  45.193

Transform 返回与数据框长度相同的序列。然后找到等于 1 的那些,并使用 loc 将那些索引位置处的列 td 设置为零值。

关于python - Pandas 中的索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35926349/

相关文章:

python - 如何从同一模块中的类名字符串中获取类对象?

python - `key_prefix` 对 flask 缓存有什么作用?

python - 将列表转换为 int 并对 pandas 数据框中的所有元素求和

python - Pandas - 根据其他列的值从特定列中选择行值

python - 将特征哈希应用于 DataFrame 中的特定列

machine-learning - 测试特征分布信息泄露是怎么回事?

python - 在 PyQt 中删除 QTreeWidgetItem?

python - Django:将 .py 文件移动到文件夹中进行整理

python - Pandas :转换列的类型

uml - 哪些 uml 图可用于数据科学项目