Python 过滤<;=而不是漂浮

Python 过滤<;=而不是漂浮,python,pandas,csv,Python,Pandas,Csv,sencap.csv是一个有很多我不需要的列的文件,我只想保留一些列,以便开始过滤它来分析信息并绘制一些图表,在这种情况下,它将是一个饼图,根据其能量来源聚合能量量。除了要求sum()仅对小于9.0 MW的行执行的条件外,所有操作都正常 import pandas as pd import matplotlib.pyplot as plt aux = pd.read_csv('sencap.csv') keep_col = ['subsistema','propietario','razon

sencap.csv
是一个有很多我不需要的列的文件,我只想保留一些列,以便开始过滤它来分析信息并绘制一些图表,在这种情况下,它将是一个饼图,根据其能量来源聚合能量量。除了要求
sum()
仅对小于9.0 MW的行执行的条件外,所有操作都正常

import pandas as pd
import matplotlib.pyplot as plt

aux = pd.read_csv('sencap.csv')

keep_col = ['subsistema','propietario','razon_social', 'estado',
            'fecha_servicio_central', 'region_nombre', 'comuna_nombre',
            'tipo_final', 'clasificacion', 'tipo_energia', 'potencia_neta_mw',
            'ley_ernc', 'medio_generacion', 'distribuidora', 'punto_conexion',
            ]
c1 = aux['medio_generacion'] == 'PMGD'
c2 = aux['medio_generacion'] == 'PMG'

aux2 = aux[keep_col]
aux3 = aux2[c1 | c2]

for col in ['potencia_neta_mw']:
    aux3[col] = pd.to_numeric(aux3[col].str.replace(',','.'))

c3 = aux3['potencia_neta_mw'] <= 9.0
aux4 = aux3[c3]

df = aux4.groupby(['tipo_final']).sum()
将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
aux=pd.read\U csv('sencap.csv'))
keep_col=['subsistema'、'propitario'、'razon_social'、'estado',
“fecha_servicio_central”、“region_nombre”、“comuna_nombre”,
“tipo_final”、“clasificacion”、“tipo_energia”、“Potentia_neta_mw”,
“ley_ernc”、“medio_Generation”、“Distribidora”、“punto_conexion”,
]
c1=辅助['medio_generacion']=='PMGD'
c2=辅助['medio_generacion']=='PMG'
aux2=aux[保持一致]
aux3=aux2[c1 | c2]
对于['Potentia_neta_mw']中的col:
aux3[col]=pd.to_numeric(aux3[col].str.replace(',','))
c3=aux3[“效力”]
这一行是您收到警告的原因

使用索引访问“col”可能会导致不可预测的行为,因为它可能返回原始数据的视图或副本

这取决于阵列的内存布局,pandas对此不作任何保证

pandas文档建议用户改用.loc

例如:

In: df

Out: 
      one          two       
  first second first second
0     a      b     c      d
1     e      f     g      h
2     i      j     k      l
3     m      n     o      p

dfmi.loc[:,('one','second')] = value
# becomes
dfmi.loc.__setitem__((slice(None), ('one', 'second')), value)

dfmi['one']['second'] = value
# becomes
dfmi.__getitem__('one').__setitem__('second', value)
在第二种情况下,getitem是不可预测的。它可以返回数据的视图或副本。修改视图和副本的工作方式不同

在副本上进行更改不会反映在原始数据上,而视图上的更改会反映在原始数据上


注意:因此,出现警告是为了警告用户,即使您获得了预期的输出,也有可能导致一些不可预测的行为。

不确定您的问题是什么,但
aux2
aux
的副本,这就是引发警告的原因。如果更改
aux2
aux
将保持不变,那么df有什么问题?你得到了什么结果?@Yuca,对不起。我现在添加了整个警告。@Zrakk是关于您收到的警告的问题。@user6924051是的。我的最后一个数据框正好显示了我想要的东西,但是这个警告让我想到了以一种低效的方式做一些事情。
In: df

Out: 
      one          two       
  first second first second
0     a      b     c      d
1     e      f     g      h
2     i      j     k      l
3     m      n     o      p

dfmi.loc[:,('one','second')] = value
# becomes
dfmi.loc.__setitem__((slice(None), ('one', 'second')), value)

dfmi['one']['second'] = value
# becomes
dfmi.__getitem__('one').__setitem__('second', value)