pandas
宇宙全能王
很感谢那些免费回答问题的人,所以我的博客也全部免费,希望能帮助有需要的人!
展开
-
pandas根据条件赋值并解决问题A value is trying to be set on a copy of a slice from a DataFrame
数据展示import pandas as pddf = pd.DataFrame([[1,2,3],[4,5,6],[66,10,5]],columns=['a','b','c'])目的查找a列大于10的数,并且设置其b列数据为0错误写法导致A value is trying to be set on a copy of a slice from a DataFrame出现的原因df.b[df.a>10] = 0正确写法df.loc[df.a>10,'b'] = 0原创 2022-01-10 18:05:49 · 1318 阅读 · 0 评论 -
python pandas replace 0替换成nan,bfill/ffill
一般情况下,0 替换成nan会写成df.replace(0, None, inplace=True)然而替换不了,应该是这样的df.replace(0, np.nan, inplace=True)原创 2020-08-24 10:08:30 · 9496 阅读 · 2 评论 -
python pdf转Excel
一个PDF文件,可能有文字也可能有表格,把需要的表格内容写到Excel里面可以这样做。可以看到,表格的开头是有文字的,可以以它为截取的开始。源文件为test.pdf目标文件为pdf.xlsximport pdfplumber # 关键在这个库import pandas as pddef func(src, dest='pdf.xlsx'): pdf = pdfplumber.open(src) size = len(pdf.pages) #pdf有多少页 .原创 2020-08-07 09:44:28 · 1875 阅读 · 2 评论 -
python pandas dataframe操作基础
假设有2个dataframe分别为df1 和 df2,如下 一:多个Dataframe操作1、拼接df1的A列 和df2的B列代码如下pd.concat([df1['A'],df2['B']],axis=1)结果如下说明:很显然,df1和df2的行数不一样,所以出现了NaN。二:单个Dataframe操作1、df1添加一行代码如下df1.append({'A':5,'B':10},ignore_index=True)...原创 2020-06-24 10:24:24 · 405 阅读 · 0 评论 -
pandas.DataFrame.to_sql方法如何指定primary key并且修改dataframe的列
解决办法如下:创建一个表,说明数据# name和id同时作为primary keycreate table grade( name varchar(20), id int, sex varchar(2), primary key(name,id))import pandas as pddata = { 'mingzi':['john','lily'], 'ID':[...原创 2020-02-27 12:50:27 · 5569 阅读 · 0 评论 -
python pandas math numpy 避免NaN这个坑
如果用dataframe运算的时候,难免碰到很多NaN,这就出现了几个问题这个NaN是math的,不是numpy的你不能用np.NAN, 而必须用 float(‘nan’)不能用 np.isnan(value),必须用math.isnan(value)如果要查询一列中,某个值在该列中的位置,那么NaN会被忽略比如dataframe的一列数据是[1,2,3,4,5,NaN],这里面...原创 2019-12-20 13:33:25 · 1109 阅读 · 0 评论 -
ValueError: Plan shapes are not aligned
pandas.concat出现这个错误,往往是你的dataframe的列重复了,比如你有两个date列原创 2019-12-18 14:58:04 · 6050 阅读 · 0 评论 -
python dataframe 去重相同索引
假如有个dataframe如下,这里需要去除第一个aa,保留最后一个aa关键代码# 如果你想保留第一个aa,那么keep就是firstdf.reset_index().drop_duplicates(subset='index', keep='first').set_index('index')结果如下:...原创 2019-12-18 14:53:27 · 4949 阅读 · 1 评论 -
python pandas dataframe 多列筛选
# 括号不能少data[(data['age']>20) & (data['height']>176)]原创 2019-12-17 14:16:53 · 4009 阅读 · 1 评论 -
python pandas dataframe 替换值
把任何值替换为NaNimport numpy as npvalue = -999df = df.replace(value,np.NAN)把任何值为NaN的数值替换为0value = 0df = df.fillna(value)原创 2019-12-11 16:23:40 · 1490 阅读 · 0 评论 -
python pandas dataframe 获取除了指定列以外的所有列
假设有个dataframe叫做df,有[‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’]列,但是你只想要除了’e’列之外的所有列col = df.columns.values.tolist()col.remove('e') # 切不可用col = col.remove('e'),或者直接把remove加到上面这行代码中,否则col为空new_df = df[col]print(n...原创 2019-12-11 16:00:33 · 11886 阅读 · 0 评论 -
Excel的PERCENTRANK.EXC用python中pandas.rank替代
假设有以上的数据,蓝底的是PERCENTRANK.EXC的结果,我们要用python计算该值,则可以按照如下方式解决import pandasdf = pd.DataFrame([[10,3],[11,4],[12,5],[13,6],[14,'']],index=[1,2,3,4,5],columns=['size','num'])size_df = df['size']num_df ...原创 2019-11-21 15:39:54 · 1885 阅读 · 1 评论 -
python pandas DataFrame 列数值大小筛选
import pandas as pddata = [[1,2],[2,3],[3,4],[-3,4],[-2,3]]column = ['a','b']df = pd.DataFrame(data,columns=column)#筛选a列绝对值大于2的数v = df[abs(df['a']) > 2]print(v['a'])打印出来的结果是...原创 2019-09-25 18:01:48 · 9288 阅读 · 0 评论 -
python pandas DataFrame 打印一行数据
import pandas as pddf = pd.DataFrame(data=[[1,2,3],[2,3,4]],columns=list('abc'))for i in range(len(df)): row = df.iloc[i].values # 返回一个list print(row) pass打印结果是:[1 2 3][2 3 4]...原创 2018-11-08 15:39:41 · 26128 阅读 · 0 评论 -
python pandas dataframe append
import pandas as pdcol = ['name','sex','age']# 初始化空 DataFramedf = pd.DataFrame(columns = col)arr= [['lily','female','12'],['john','male','13']]for i in range(len(arr)): # 注意: # 1. 以下代码...原创 2018-11-08 15:34:35 · 1269 阅读 · 0 评论