目录
2.创建一个空的DataFrame: 需要调用DataFrame构造函数来创建DataFrame
3.用列表创建DataFrame,每个列表元素代表一行数据:
7.元组创建的方式和列表比较类似:可以是单层元组,也可以进行嵌套。
在DataFrame数组中添加其他DataFrame数组——concat()函数:
前言:
DataFrame是一种二维表格数据结构,类似于电子表格或SQL数据库中的数据表。它由多个列组成,每列可以包含不同类型的数据,如整数、浮点数、字符串等。DataFrame具有以下特点:-可以同时存储多个类型的数据。-行和列都有标签,方便数据的索引和操作。-提供了丰富的数据处理和分析函数。创建DataFrame在Python中,我们可以通过多种方式创建DataFrame对象
pandas.DataFrame()函数可以返回给定形状和数据类型的数据框,其主要参数如下:
data:表示数据,可以是ndarray数组、Series对象、列表、字典等。
index:表示行标签(索引)。
columns:列标签(索引)。
dtype:每一列数据的数据类型,其与Python数据类型有所不同,如object数据类型对应的是Python的字符型。
copy:用于复制数据
一,创建方法
.使用Pandas创建DataFrame:1
pandas.DataFrame(data,index,columns,dtype,copy)
2.创建一个空的DataFrame: 需要调用DataFrame构造函数来创建DataFrame
df = pd.DataFrame()
3.用列表创建DataFrame,每个列表元素代表一行数据:
data = [[4, 7, 10],
[5, 8, 11],
[6, 9, 12]]
df = pd.DataFrame(data, columns=['A', 'B', 'C'])
df
4.用字典创建DataFrame:
通过字典创建DataFrame,需要注意:字典中的value值只能是一维数组或单个的简单数据类型,如果是数组,要求所用数组长度一致;如果是单个数据,则每行都添加相同的数据。
merge_dt_dict = {'date':date_list,
'update':update_list,
'serverip':serverip_list}
data_df = DataFrame(merge_dt_dict)
5.用csv文件读取数据创建DataFrame:
import pandas as pd
# 从CSV文件创建DataFrame对象
filepath = "data.csv" # CSV文件路径
df_from_csv = pd.read_csv(filepath)
print("\nFrom CSV File:\n", df_from_csv)
6.使用Series创建DataFrame:
Series 简介。
Series是一维结构,由一组数据和一组与之相关的数据标签(索引)组成。序列结构只有行索引(row index),没有列名称(column name),但是序列有Name、dtype和index属性,其中Name属性是指序列的名称,dtype属性是指序列值的类型,index属性是序列的索引。
series = {'水果':Series(['苹果','梨','草莓']),
'数量':Series([60,50,100]),
'价格':Series([7,5,18])
}
df15 = pd.DataFrame(series)
df15
7.元组创建的方式和列表比较类似:可以是单层元组,也可以进行嵌套。
单层元组创建:
# 单层元组
tup = ("小明","小红","小周","小孙")
df12 = pd.DataFrame(tup,columns=["姓名"])
df12
元组的嵌套:
# 嵌套元组
tup = (("小明","20","男"),
("小红","23","女"),
("小周","19","男"),
("小孙","28","男")
)
df13 = pd.DataFrame(tup,columns=["姓名","年龄","性别"])
df13
8.通过numpyndarray创建:
arr=np.random.randn(6,4)
index_rows=pd.date_range('today',periods=6)
index_columns=['A','B','C','D']
dataframe1=
pd.DataFrame(arr,index=index_rows,columns=index_columns)
dataframe1
二、方法
在DataFrame数组中添加其他DataFrame数组——concat()函数:
chart = {
"ID": ["1", "2", "3", "4", "5"],
"name": ["abi", "baxi", "cine", "deker", "ebby"],
"gender": [True, False, True, False, False],
"age": [19, 10, 29, 19, 29],
"score": [99, 40, 89, 70, 30]
}
finalChart = pd.DataFrame(chart)
bChat = {
"height": [12, 13, 13, 14, 13]
}
bChat1 = pd.DataFrame(bChat)
# 以上创建两个DataFrame
'''axis=1'''
finalChart = pd.concat([finalChart, bChat1], axis=1)
print(finalChart)
'''
ID name gender age score height
0 1 abi True 19 99 12
1 2 baxi False 10 40 13
2 3 cine True 29 89 13
3 4 deker False 19 70 14
4 5 ebby False 29 30 13
'''
finalChart = pd.concat([bChat1, finalChart], axis=1)
'''两个数组位置调换'''
print(finalChart)
'''
height ID name gender age score
0 12 1 abi True 19 99
1 13 2 baxi False 10 40
2 13 3 cine True 29 89
3 14 4 deker False 19 70
4 13 5 ebby False 29 30
'''
pandas里面也可以使用append(),不过会出现即将删除append()的提示,并建议使用concat(),可以认为这两个函数是相同的,但是,千万不要和numpy中的append()函数混淆!
DataFrame数组中列与列之间的运算:
加减乘除:(举两个例子:加法、求整数商)
dd = {'one': pd.Series([11, 22, 33, 99], index=[1, 2, 3, 4]),
'two': pd.Series([55, 66, 7], index=[1, 2, 3], dtype=int)}
dc = pd.DataFrame(dd)
dc['three'] = pd.DataFrame([23, 4, 566, 88], index=[1, 2, 3, 4])
'''
one two three
1 11 55.0 23
2 22 66.0 4
3 33 7.0 566
4 99 NaN 88
'''
'加法'
dc['four'] = dc['three'] + dc['two']
print(dc)
'''
one two three four
1 11 55.0 23 78.0
2 22 66.0 4 70.0
3 33 7.0 566 573.0
4 99 NaN 88 NaN
'''
'求整数商'
dc['four'] = dc['three'] // dc['two']
print(dc)
'''
one two three four
1 11 55.0 23 0.0
2 22 66.0 4 0.0
3 33 7.0 566 80.0
4 99 NaN 88 NaN
'''
两种删除列的方法——del 和pop():
del:
del dc['three']
print(dc)
'''
one two four
1 11 55.0 78.0
2 22 66.0 70.0
3 33 7.0 573.0
4 99 NaN NaN
'''
pop():
依然可以删除任意一列
dc.pop('two') # 不需要赋值,直接在数组上进行运算,pop函数内传入的参数名就是列名。
print(dc)
'''
one four
1 11 78.0
2 22 70.0
3 33 573.0
4 99 NaN
'''
基本数据操作:增删改查
df.columns
df.index
print(df.values)
print(7 in df.values)
# 获取DataFrame的所有列
columns = df.columns
# 获取特定列的数据
name_column = df['Name']
# 获取特定行的数据
row = df.loc[0] # 使用标签索引
# 添加新列
df['Gender'] = ['F', 'M', 'M']
# 删除列
df = df.drop('Age', axis=1)
# 删除行
df = df.drop(0)
# 根据条件筛选数据
filtered_df = df[df['Age'] > 20]
DataFrame轴的概念
在DataFrame的处理中经常会遇到轴的概念,这里先给大家一个直观的印象,我们所说的axis=0即表示沿着每一列或行标签\索引值向下执行方法,axis=1即表示沿着每一行或者列标签模向执行对应的方法。
以上就是Python中创建Dataframe和使用的方法,有需要的可以直接套入使用。