首页 > 编程语言 >Python数据分析与挖掘操作总结(持续更新...)

Python数据分析与挖掘操作总结(持续更新...)

时间:2023-02-06 16:32:36浏览次数:50  
标签:数据分析 ... chose Python pd test csv data shuzhi


一.实现某列的去重,只保留其中一行的数据内容:

使用drop_duplicates方法来实现数据去重,实现方式如下:

test = test.drop_duplicates("标题")

二.删除某一列中含有’万’字的数字,并将其替换为数字:

test1 = test['bofang_num']
p = -1
for i in test['bofang_num']:
p+=1
if i.find("万") !=-1:
print(i)
i = i.replace("万","")
i = float(i)*10000
test['bofang_num'][p] = i
print(i)
Series可以通过索引值来访问数值!

bool_index = test['bofang_num'].apply(lambda x:True if x.find("万")!=-1 else False)
test.loc[bool_index,"bofang_num"] = test['bofang_num'][bool_index].apply(lambda x:float(x.replace("万",""))*1000)

三.将表按照某一个特征值进行连接:

lis =["data_date_clean.csv","data_info_clean.csv","data_region_clean.csv","related_feature_table.csv"]
first = "Casualties_and_consequences.csv"
df1 = pd.read_csv(str(first),engine="python")
for li in lis:
df2 = pd.read_csv(str(li),engine="python")
df1 = pd.merge(df1,df2,on="eventid")```

四.删除某列下含有缺失值或者指定值的样本

先将指定的样本值都替换维缺失值nan,再统一的删掉nan的数据

#删除缺失值以及为-99的数据
# test_shuzhi_chose.head()
# 将值替换为nan
test_shuzhi_chose_ca = test_shuzhi_chose.replace([int('-99')],[np.nan])
test_shuzhi_chose_ca[test_shuzhi_chose_ca['nperpcap']==-99]
# 再统一删除nan的值
test_shuzhi_chose_ca = test_shuzhi_chose_ca.dropna()

五.通过Pandas将每行的数据保存成csv文件:

# 在每行数据中,
item = {}
df = DataFrame()
for .....
item['公司名称'] = html.xpath('//*[@id="wap_header_top"]/div[1]/div[1]/div[1]/text()')[0]
df = df.append(item,ignore_index=True)
df.to_csv('text1.csv')

六.通过Pandas将文本txt转换为列表字符串:

company = pd.read_table('房地产商.txt',engine='python',header=None)
#此处注意,其实用company.values,也能达到列表字符串,但是它会少了第一行
#但是需要有headers=none,表示此文件无索引列名!
for i in company[0]:
print(i)

七.修改df列名

#将col_1的列名修改为col_a
df = df.rename(columns={'col_1': 'col_a'})

八.根据key值进行合并

res = pd.merge(left, right, on='key')
#没有指定how的话默认使用inner方法
#how的方法还有:
#left
#只保留左表的所有数据
#right
#只保留右表的所有数据
#right
#只保留右表的所有数据
#inner
#只保留两个表中公共部分的信息

九.matplotlib中文标签乱码

# 用来正常显示中文标签
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
# # 用来正常显示负号
plt.rcParams['axes.unicode_minus'] = False

十.TypeError: ‘AxesSubplot’ object is not subscriptable

产生的原因可能是没有指定数据的类型,导致其子元素不能获取指定的下标,只要这样改:

p = data.boxplot(return_type='dict')
# 'flies'即为异常值的标签
x = p['fliers'][0].get_xdata()
y = p['fliers'][0].get_ydata()

十一. values方法

不管是Series,或是DataFrame,对于reshape和sort操作,都要先做.values!

kmodel.fit(data.values.reshape((len(data), 1)))
c = pd.DataFrame(kmodel.cluster_centers_).values.sort(0)

十二. rolling_mean

# python3中没有rolling_mean的方法,需要将其改为rolling.mean
w = pd.rolling_mean(c,2).iloc[1:] # 相邻两项求中点,作为边界点

十四. 将dict转化为dataframe

pd.DataFrame.from_dict(feature_data3['paras'], orient='columns')

十五. 将不同的dataframe的相同index进行连接

# data1为dataframe类型
data = [data1,data2,data3]

result = pd.concat(data)

十六. 使用dataframe来读取json文件

pd.DataFrame(json.loads(open('para1.json','r+').read()))

十七.


标签:数据分析,...,chose,Python,pd,test,csv,data,shuzhi
From: https://blog.51cto.com/u_15955938/6039490

相关文章

  • Python的f-strings格式化
    我是精神抖擞王大鹏,不卑不亢,和蔼可亲~计算机硕士,目前小米大数据开发。日常会分享总结一些自己面试实际问题的回答,欢迎一起讨论。公众号:diting_dapeng'f-strings’是Python......
  • python的dict和json的区别
    在工作中经常用到数据传输,而数据传输用的是json字符串,那么这个形如字典dict的json,和json又有什么区别呢?区别Python的字典是一种数据结构,JSON是一种数据传输格式。json就......
  • Python批量重命名文件的方法
    用到了os的两个接口:1、列出文件夹中的所有文件(也包含目录)os.listdir(path)Returnalistcontainingthenamesoftheentriesinthedirectorygivenbypath.Thelist......
  • Hive使用TRANSFORM运行Python脚本总结
    1、Python环境设置可以使用addcachearchive的方法把tar.gz添加到分布式缓存,Hive会自动解压压缩包,但是目录名是和压缩包名称一样的;addcachearchive${env:my_workbenc......
  • python爬取网站指定数据并存入excel
    1:安装库pipinstallbeautifulsoup4pipinstallpandas2:爬取数据我们拿 https://cuiqingcai.com/archives/ 网站为例子,来进行爬取文章标题importrequestsfrom......
  • python之路64 drf从入门到成神 9个视图子类 视图集、ModelViewSet、ReadOnlyModelV
    视图视图View两个视图基类:APIViewGenericAPIViewAPIView执行流程:新的reqeust,三大认证,全局异常重写了as_view,dispatch类属性:p......
  • python新手常见问题一:乱用表达式
    在函数参数中乱用表达式作为默认值Python允许给一个函数的某个参数设置默认值以使该参数成为一个可选参数。尽管这是这门语言很棒的一个功能,但是这当这个默认值是可变对象(mu......
  • Python新手常见问题二:不正确的使用类变量
    不正确的使用类变量看下面一个例子:>>>classA(object):...x=1...>>>classB(A):...pass...>>>classC(A):...pass...>>>printA.x,B.x,C.x111看起......
  • Python新手常见问题三:在异常处理时错误的使用参数
    在异常处理时错误的使用参数假设你有如下的代码:>>>try:...l=["a","b"]...int(l[2])...exceptValueError,IndexError:#想捕捉两个异常...pass...Tr......
  • Python实现的简易FTP
    Python版本实现了比之前的xxftp更多更完善的功能1、继续支持多用户2、继续支持虚拟目录3、增加支持用户根目录以及映射虚拟目录的权限设置4、增加支持限制用户根目录或者虚......