首页 > 其他分享 >Pandas

Pandas

时间:2024-10-22 10:11:20浏览次数:4  
标签:df DataFrame pandas pd print import Pandas

Pandas 基础

Pandas Series

类似于一维数组,但可以提供索引。

Series 的创建


import pandas as pd

a = ["Google", "Runoob", "Wiki"]
myvar = pd.Series(a, index = ["x", "y", "z"])
print(myvar["y"])

sites = {1 : "Google", 2 : "Runoob", 3 : "Wiki"}
myvar = pd.Series(sites)
print(myvar)

myvar = pd.Series(sites, index = [1, 2])
print(myvar)

import numpy as np
myvar = pd.Series(np.array([1, 2, 3, 4]))
print(myvar)

Series 的基本操作

import pandas as pd
s = pd.Series([12, 15, 13, 11])

# 遍历
for index, value in s.items():
    print(f"Index: {index}, Value: {value}")

print(s[1:4])
print(s[:3])

s[4] = 1 # 添加
del s[0] # 删除
s_dropped = s.drop(1) # 返回删除索引1的新series
print(s_dropped)

Series 的基本运算

import pandas as pd

s = pd.Series([12, 15, 13, 11])
print(s * 2)
print(s[s > 12])

import numpy as np
print(np.sqrt(s))

print(s.sum(), s.mean(), s.min(), s.max(), s.std())

Series 的属性和方法

import pandas as pd

s = pd.Series([12, 15, 13, 11], index = ['a', 'b', 'c', 'd'])

print(s.index)
print(s.values)
print(s.describe())

# 获取最大最小值的索引
print(s.idxmax(), s.idxmin())
print(s.shape)
print(s > 2)
print(s.astype('float64'))

Pandas DataFrame

DataFrame 是 Pandas 中的另一个核心数据结构,用于表示二维表格型数据。

DataFrame 的创建

import pandas as pd
import numpy as np
#列表创建
data = [['Google', 10], ['Runoob', 12], ['wiki', 13]]
df = pd.DataFrame(data, columns = ['Sites', 'Age']) # columns是列索引,index是行索引
df['Sites'] = df['Sites'].astype(str)
df['Age'] = df['Age'].astype(float)
print(df)

#字典创建
dict = {'Sites' : ['Google', 'Runoob', 'Wiki'], 'Age' : [10, 12, 13]}
df = pd.DataFrame(dict)
print(df)

#Ndarray创建
ndarray_data = np.array([['Google', 10], ['Runoob', 12], ['Wiki', 13]])
df = pd.DataFrame(ndarray_data, columns = ['Sites', 'Age'])
print(df)

DataFrame 的基本操作

import pandas as pd

data = {
    "calories" : [420, 380, 390],
    "duration" : [50, 40, 45]
}

df = pd.DataFrame(data)

print(df.loc[0])
print(df.loc[1])
print(df.loc[[0, 1]]) # 返回第一行和第二行

df = pd.DataFrame(data, index = ["day1", "day2", "day3"])
print(df.loc["day2"])

print(df["calories"]) # 查询列
print(df.loc[:, 'calories'])
print(df.iloc[:, 0])
import pandas as pd

data = {
    "calories" : [420, 380, 390],
    "duration" : [50, 40, 45]
}

df = pd.DataFrame(data)
print(df.shape)
print(df.columns)
print(df.index)
print(df.head())
print(df.tail())
print(df.info())
print(df.describe())
print(df.mean())
print(df.sum())
import pandas as pd

data = {
    "calories" : [420, 380, 390],
    "duration" : [50, 40, 45]
}

df = pd.DataFrame(data)
df['calories'] = [420, 390, 390] # 修改列
df['NewColumn'] = [100, 200, 300] # 创建新列
print(df)

df.loc[3] = [1, 2, 3] #添加新行
print(df)

new_row = pd.DataFrame([[440, 40, 400]], columns = ['calories', 'duration', 'NewColumn'])
df = pd.concat([df, new_row], ignore_index = True)
print(df)

df_dropped = df.drop('NewColumn', axis = 1) # 删除列
print(df_dropped)

df_dropped = df.drop(3, axis = 0)
print(df_dropped)

print(df[df['calories'] > 400])
import pandas as pd
df1 = pd.DataFrame([[1, 2, 3]], columns = ['columns1', 'columns2', 'columns3'])
df2 = pd.DataFrame([[1, 5, 6]], columns = ['columns1', 'columns2', 'columns3'])
print(pd.concat([df1, df2], ignore_index = True)) # 纵向合并

df1 = pd.DataFrame([[1, 2, 3]], columns = ['columns1', 'columns2', 'columns3'])
df2 = pd.DataFrame([[1, 5, 6]], columns = ['columns1', 'columns5', 'columns6'])
print(pd.merge(df1, df2, on = 'columns1'))

pandas 与 csv

csv 文件的存取

import pandas as pd
import os

FilePath = os.path.abspath('.')
os.chdir(FilePath)

df = pd.read_csv('DataForClassify.csv')
df.to_csv('DFC_cp.csv')

数据处理

print(df.head()) # default = 5
print(df.head(10))
print(df.tail())
print(df.tail(10))

pandas 与 json

读取json文件

import pandas as pd
df = pd.read_json('test.json')
# df = pd.read_json(URL)

读取内嵌的json

import pandas as pd
import os
import json

FilePath = os.path.abspath('.')
os.chdir(FilePath)

with open('nest.json', 'r') as f:
    data = json.loads(f.read())

df_nest = pd.json_normalize(data, record_path = ['students'], meta = ['class'])
print(df_nest)

glom

import pandas as pd
from glom import glom

df = pd.read_json('nest.json')
data = df['students'].apply(lambda row: glom(row, 'grade.math'))
print(data)

标签:df,DataFrame,pandas,pd,print,import,Pandas
From: https://www.cnblogs.com/mklzc/p/18429988

相关文章

  • 大数据基本公式——二:pandas
    df=df.rename(columns={'村居书记(主任/负责人)':'村居书记_主任_负责人'})   修改名字s.mean()series取均值s.max()s.min()'b'ins.index() 判断是否存在s=pd.series({'a':1,'b':9,'c':4})用dict构造series_key就是index......
  • pandas
    DataFrame类的dtype介绍如下:object:定义该列值可以存放任意类型的内容,比如float64,str,int32等等。从excel读入时,空值将以float64形式存储为np.NaN。float64:即浮点形,为numpy的浮点形,而不是python内置类型的float,在numpy中运行时相较于float有性能优势,空值存储为np.NaNpd.......
  • Python酷库之旅-第三方库Pandas(158)
    目录一、用法精讲721、pandas.Timedelta.round方法721-1、语法721-2、参数721-3、功能721-4、返回值721-5、说明721-6、用法721-6-1、数据准备721-6-2、代码示例721-6-3、结果输出722、pandas.Timedelta.to_pytimedelta方法722-1、语法722-2、参数722-3、功能7......
  • 盘点6个Pandas中批量替换字符的方法
    大家好,我是Python进阶者。一、前言前几天在Python最强王者群有个叫【dcpeng】的粉丝问了一个关于Pandas中的问题,这里拿出来给大家分享下,一起学习。想问一下我有一列编码为1,2,3,4的数据,如何将1批量换为“开心”,2批量换为“悲伤”这种字符替换呢?二、解决过程思路挺简单,限定Pandas......
  • 常用Python数据分析开源库:Numpy、Pandas、Matplotlib、Seaborn、Sklearn介绍
    文章目录1.常用Python数据分析开源库介绍1.1Numpy1.2Pandas1.3Matplotlib1.4Seaborn1.5Sklearn1.常用Python数据分析开源库介绍1.1NumpyNumpy(NumericalPython)是Python数据分析必不可少的第三方库,Numpy的出现一定程度上解决了Python运算性能不佳的问题,同......
  • pandas随笔(七)-- 统计文本中单词出现的次数(词频统计)
    题目描述编写解决方案,找出单词'bull'和'bear'作为独立词有出现的文件数量,不考虑任何它出现在两侧没有空格的情况(例如,'bullet','bears','bull.',或者'bear'在句首或句尾不会被考虑)。返回单词'bull'和'bear'以及它们对应的出现文件数量,顺序没有限制。测试用例输......
  • python pandas写入excel
    #--coding:utf-8--importdatetimeimportpandasaspdfromcommon_toolimportget_ip_areafromdb.mysqlConnectionimportMyPymysqlPoolfromdb_configimportdata_report_dbsex_dict={"-1":"未知","0":"女&......
  • 【python-数据分析】pandas时间序列处理
    1.timestamp1.1创建timestamp自定义timestamp语法:pd.Timestamp(ts_input,tz,year,month,day,hour,minute,second,microsecond,nanosecond,tzinfo)代码示例:importpandasaspdimportpytz#当ts_input为字符串时,一般要与tz参数搭配使用timestamp=pd.Timestamp(ts......
  • 【python-数据分析】pandas数据提取
    importpandasaspd1.直接索引df=pd.DataFrame({'AdmissionDate':['2021-01-25','2021-01-22','2021-01-20','2021-01-18','2021-01-17','2021-01-17','2021-01-2......
  • pandas数据统一绘图风格配置
    在使用pandas的时候,经常会用到Dataframe或者Series的plot方法,该方法底层实际上调的还是matplotlib.pyplot的plot方法。因此,通过对pyplot模块的绘图全局参数设置是可以在pandas中奏效的。importpandasaspdimportmatplotlib.pyplotaspltimportwarningswarnings.filterwa......