小编Lya*_*yam的帖子

删除或替换熊猫数据框中重复行中的值

我有一个数据框df,其中一些行相对于列的子集是重复的:

A    B     C
1    Blue  Green
2    Red   Green
3    Red   Green
4    Blue  Orange
5    Blue  Orange
Run Code Online (Sandbox Code Playgroud)

我想删除(或用虚拟字符串替换)与Band 相关的重复行的值C,而不删除整行,理想情况下产生:

A    B     C
1    Blue  Green
2    Red   Green
3    NaN   NaN
4    Blue  Orange
5    Nan   NaN
Run Code Online (Sandbox Code Playgroud)

根据此线程:我尝试使用的Pandas 中替换跨列的重复值pd.Series.duplicated,但是我无法让它处理列子集中的重复项。

我还玩过:

is_duplicate = df.loc[df.duplicated(subset=['B','C'])]
df = df.where(is_duplicated==True, 999)  # 999 intended as a placeholder that I could find-and-replace later on
Run Code Online (Sandbox Code Playgroud)

然而,这几乎替换了每一列999中的每一行 - 很明显我做错了什么。我很感激有关如何进行的任何建议!

python duplicates dataframe pandas

4
推荐指数
1
解决办法
3587
查看次数

Python:在循环中对 IF 语句的处理不一致

我有一个df包含条件和值的数据框。

import pandas as pd
df=pd.DataFrame({'COND':['X','X','X','Y','Y','Y'], 'VALUE':[1,2,3,1,2,3]})
Run Code Online (Sandbox Code Playgroud)

因此df看起来像:

  COND  VALUE
     X      1
     X      2
     X      3
     Y      1
     Y      2
     Y      3
Run Code Online (Sandbox Code Playgroud)

我正在使用循环来df根据进行子集化COND,并编写包含每个条件值的单独文本文件

conditions = {'X','Y'}
for condition in conditions:
    df2 = df[df['COND'].isin([condition])][['VALUE']]
    df2.to_csv(condition + '_values.txt', header=False, index=False)
Run Code Online (Sandbox Code Playgroud)

最终结果是两个文本文件:X_vals.txt 和 Y_vals.txt,它们都包含1 2 3. 到目前为止,一切都按预期工作。

我只想df为一个条件进一步子集。例如,也许我想要来自条件 Y 的所有值,但仅来自条件 X 的值 < 3。在这种情况下, X_vals.txt 应包含1 2, Y_vals.txt 应包含1 2 3。我尝试用 IF 语句实现这一点:

conditions = {'X','Y'}
for …
Run Code Online (Sandbox Code Playgroud)

python loops if-statement pandas

3
推荐指数
1
解决办法
240
查看次数

从列表中获取不等于特定数字的随机值?

我有号码列表:

list = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

并希望从上面的列表中获取一个不等于 x 的随机整数 k

我试过了:

x = 2
k = (i for i in array if i !=x)
Run Code Online (Sandbox Code Playgroud)

但这返回一个生成器对象而不是整数。有没有办法来解决这个问题?

python integer

-1
推荐指数
1
解决办法
2122
查看次数

标签 统计

python ×3

pandas ×2

dataframe ×1

duplicates ×1

if-statement ×1

integer ×1

loops ×1