gpt4 book ai didi

python - 根据具有特定值的行创建新的 Dataframe 并从原始 Dataframe 中删除行

转载 作者:行者123 更新时间:2023-12-01 23:01:54 26 4
gpt4 key购买 nike

我尝试根据多列中具有特定值的行来分隔 Dataframe,以便将原始 Dataframe 分成两部分,所有行都包含一个 Dataframe 中的值,而另一个 Dataframe 具有剩余行。

df = pd.DataFrame(np.random.randint(-1,100,size=(100, 4)), columns=list('ABCD'))

df
A B C D
0 51 86 15 80
1 61 53 75 66
2 80 48 23 58
3 86 25 37 99
4 50 11 87 71
... ... ... ... ...
95 34 40 43 40
96 89 16 83 72
97 97 32 24 26
98 27 83 75 29
99 24 50 40 43
100 rows × 4 columns

df[~df.isin([-1])].dropna()
A B C D
0 51 86 15 80.0
1 61 53 75 66.0
2 80 48 23 58.0
3 86 25 37 99.0
4 50 11 87 71.0
... ... ... ... ...
95 34 40 43 40.0
96 89 16 83 72.0
97 97 32 24 26.0
98 27 83 75 29.0
99 24 50 40 43.0
98 rows × 4 columns

df[df.isin([-1])].dropna()
A B C D

是我到目前为止所尝试的,第一部分工作正常。但是 df[df.isin([-1])].dropna() 失败了。

最佳答案

假设您希望按等于 80 的值过滤数据。

可能的解决方案如下:

# pip install pandas

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(-1,100,size=(100, 4)), columns=list('ABCD'))
df

enter image description here

# df1 = df[~df.isin([80])].dropna().reset_index(drop=True)
# or
df1 = df[~df.eq(80).any(1)].reset_index(drop=True)
df1

enter image description here

df2 = df[df.eq(80).any(1)].reset_index(drop=True)
df2

enter image description here

关于python - 根据具有特定值的行创建新的 Dataframe 并从原始 Dataframe 中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71628134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com