DataFrame数据帧-二维:
pandas.DataFrame( data, index, columns, dtype, copy)
data:;数据采取各种形式,如:ndarray,series,map,list,dict,constant和另一个DataFrame;index:行标签;columns:列标签;dtype:每列的数据类型;copy:复制数据,默认为false。
所有的ndarrays必须具有相同的长度。如果传递了索引(index),则索引的长度应等于数组的长度。
import pandas as pd
data = {'name': ['tom', 'jack', 'steve', 'ricky'], 'age': [28, 34, 29, 42]}
df = pd.DataFrame(data, index=list('abcd'))
print(df)
字典列表可作为输入数据传递以用来创建数据帧(DataFrame),字典键默认为列名。
行处理:
1)loc[ ‘行标签’ ] 来选择行
2)iloc[ 要选取的行在列表中的对应的下标 ]函数来选择行
3)行切片 [ n:m] 选择多行
4)附加行 append()表尾添加新的行:
- DataFrame.append(other, ignore_index=False, verify_integrity=False,
sort=None) - 若追加的行中存在原数据没有的列,会新增一列,并用nan填充;若追 加的行数据中缺少原数据某列,同样以nan填充
5)删除行drop()
DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False)
- labels 就是要删除的行列的名字,用列表给定
- axis 默认为0,指删除行,因此删除columns时要指定axis=1;
- index 直接指定要删除的行
- columns 直接指定要删除的列
import pandas as pd
data = {'one': pd.Series([1, 2, 3], index=list('abc')),
'two': pd.Series([1, 2, 3, 4], index=list('abcd'))}
df = pd.DataFrame(data)
print(df.loc['b']) #loc['行标签']
print(df.iloc[1]) #iloc[要选取的行在列表中的对应的下标]
print(df[2:]) #切片 [n:m]
print('---'*16)
df2 = pd.DataFrame(df[2:], index=list('cf')) #append()添加
data2 = df.append(df2)
print(data2)
print('---'*16)
#DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False)
data3 = data2.drop(index=['a','b','c'])
print(data3)
执行结果:
基本功能:
- values: 将系列作为ndarray返回
- head(n): 返回前n行
- tail(n):返回最后n行
- shape: 返回表示DataFrame的维度的元组。元组(a,b),其中a表示行数,b表示列数
- T :转换行和列(df.T)