gpt4 book ai didi

python - 如何从Python中的数据框中删除无单元格

转载 作者:行者123 更新时间:2023-11-30 22:28:36 25 4
gpt4 key购买 nike

我有一个df,

        contents    values  scoresBinned    categories
0 Buy 484 (375, 500] Bin 4
1 Sell 429 (375, 500] Bin 4
2 Blanks 130 (125, 250] Bin 2
3 A 108 (0, 125] Bin 1
4 B 77 (0, 125] Bin 1
5 F 2 (0, 125] Bin 1

因为我需要 Bin 作为我的标题,所以我正在做 df,pivot

 filter_df1=df[["contents","categories"]]

pivot_df=filter_df1.pivot(columns="categories")

print(pivot_df)

contents
categories Bin 1 Bin 2 Bin 4
0 None None Buy
1 None None Sell
2 None Blanks None
3 A None None
4 B None None
5 F None None

我尝试了 df.dropna() 但它删除了整行,

我想要的 df 是,

            Bin 1      Bin 2    Bin 4
A Blanks Buy
B Sell
F

最佳答案

您可以使用sorted bool 索引fillna来做到这一点。

pm = pivot_df.apply(sorted,key=pd.isnull)
new = pm[~pd.isnull(pm).all(1)].fillna('')

输出:

           contents              categories    Bin 1   Bin 2 Bin 40                 A  Blanks   Buy1                 B          Sell2                 F              

说明:

基于 None 排序将给出

           contents              categories    Bin 1   Bin 2 Bin 40                 A  Blanks   Buy1                 B    None  Sell2                 F    None  None3              None    None  None4              None    None  None5              None    None  None

现在选择那些行中所有值都不为空的行。所以我们可以使用 ~pd.isnull(pm).all(1) (这里 ~ 不是将 false 转换为 true 的运算符,反之亦然)。这将给出

0     True1     True2     True3    False4    False5    Falsedtype: bool 

稍后使用 bool 索引来选择数据,即pm[~pd.isnull(pm).all(1)]

        contents              categories    Bin 1   Bin 2 Bin 40                 A  Blanks   Buy1                 B    None  Sell2                 F    None  None

fillna('') 将使用 '' 填充无值。希望对您有所帮助。

关于python - 如何从Python中的数据框中删除无单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46583603/

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