关于在DataFram的pandas切片中创建新列的警告消息

2024-06-24 13:44:55 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python 3和Pandas中,我有以下数据帧:

te_cnpjs.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1255 entries, 0 to 5663
Data columns (total 13 columns):
DATA_LS               856 non-null object
DATA_INCLUS           789 non-null object
Proprietario          1255 non-null object
Nome_propriedade      1255 non-null object
Municipio             1253 non-null object
Estado                1253 non-null object
CNPJ_CPF_CEI          1255 non-null object
CNPJ_CPF_CEI_limpo    1255 non-null float64
Trab_Envolv           995 non-null float64
Ramo_atividade        540 non-null object
Localizacao           527 non-null object
Cod_ativ              563 non-null object
Tipo_lista            1255 non-null object
dtypes: float64(2), object(11)
memory usage: 137.3+ KB

“CNPJ_CPF_CEI_limpo”列有13位或14位数字的代码:“6158959000136”、“78141843000103”、“4773160000000”、“78231701000986”。。。在

我在“CNPJ_CPF_CEI_limpo”列中创建了一个新列,但只使用了它的8个第一个数字

但我收到了警告消息:一个值正试图在数据帧的切片副本上设置

首先,我将“CNPJ_CPF_CEI_limpo”列转换为整数:

^{pr2}$

然后我创建了一个新的专栏“CNPJ_raiz”,只有前8个数字:

te_cnpjs['CNPJ_raiz'] = te_cnpjs['CNPJ_CPF_CEI_limpo'].astype(str).str[:8]
/home/reinaldo/Documentos/Code/RB/te/lib/python3.6/site-packages/ipykernel_launcher.py:1: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  """Entry point for launching an IPython kernel.

结果是意料之中的,成功了。但我想知道警告信息是否意味着我所做的有可能出错


Tags: to数据dataframepandasobject数字nullnon
1条回答
网友
1楼 · 发布于 2024-06-24 13:44:55

这是一个警告,旨在警告用户,当您使用['colname']约定索引数据帧时,行为可能不一致(尽管在大多数情况下都是如此)。查看this以获得更详细的示例说明。在

相关问题 更多 >