gpt4 book ai didi

python - Python pandas 关于重新索引 bool 系列键的用户警告

转载 作者:行者123 更新时间:2023-12-01 04:01:13 25 4
gpt4 key购买 nike

当我使用索引访问 pandas.DataFrame 时,它​​给出了用户警告,并且它们没有干扰其输出。我希望知道这个用户警告是如何发生的以及我应该怎样做才能避免这些用户警告?感谢大家的关注。

df = pandas.DataFrame([[k, ass4Dict[k], k[:2], k[-2:]] for k in ass4Dict])
df.columns = ['string', 'count', 'lstr', 'rstr']
df = df[df['count'] >= 10]
**df = df[df['lstr'].map(lambda x:x in gram2Dict)][df['rstr'].map(lambda x:x in gram2Dict)]**
df['lstrCNT'] = df['lstr'].map(lambda x: float(gram2Dict[x]))
df['rstrCNT'] = df['rstr'].map(lambda x: float(gram2Dict[x]))
df['conPow'] = df['lstrCNT'] * df['rstrCNT']
df['lstrPow'] = df['count'] / df['lstrCNT']
df['rstrPow'] = df['count'] / df['rstrCNT']
df['aux4Ratio'] = df['count'] / df['conPow']
df['aux4Log'] = df['aux4Ratio'].map(lambda x: -log(x))
**df = df[df['aux4Log'] < 11][df['lstrPow'] >= 0.5][df['rstrPow'] >= 0.5]**

...

沉钦言359

纪小蕊158

顾持钧949

林晋修642

4

0.256721019745 1.22976207733

ch_extract.py:153:用户警告: bool 系列键将被重新索引以匹配 DataFrame 索引。 df = df[df['lstr'].map(gram2Dict 中的 lambda x:x)][df['rstr'].map(gram2Dict 中的 lambda x:x)]ch_extract.py:161: UserWarning: bool 系列键将被重新索引以匹配 DataFrame 索引。 df = df[df['aux4Log'] < 11][df['lstrPow'] >= 0.5][df['rstrPow'] >= 0.5]

最佳答案

如果我们只取出最后一行并重新创建它,如下例所示:

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.randint(0,50,size=(50, 4)), columns=list('ABCD'))
df[df.A < 11][df.B >= 25][df.C >= 25]

最后一行是将一系列切片串在一起。在第一个切片之后,每个后续切片都需要重新索引,因为生成的数据帧不包含前一个切片中的所有项目。

在这种情况下,正确的形式是将 bool 切片组合成一个表达式:

df[(df.A < 11) & (df.B >= 25) & (df.C >= 25)]

其他一些可能导致此警告的情况如下:

df[df.sort_values(['A'], ascending=[False]).duplicated(subset='B', keep='first')]

在这种情况下,请使用 loc 命令:

df.loc[df.sort_values(['A'], ascending=[False]).duplicated(subset='B', keep='first')]

关于python - Python pandas 关于重新索引 bool 系列键的用户警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36465525/

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