# 显示所有列
pd.set_option('display.max_columns', None)
# 显示所有行
pd.set_option('display.max_rows', None)
'''
data:一组数据(ndarray、series, map, lists, dict 等类型)。
index:索引值,或者可以称为行标签。
columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。
dtype:数据类型。
copy:拷贝数据,默认为 False
'''
pandas.DataFrame(data, index, columns, dtype, copy)
通过列表创建
data = [[1, 2, 3], [4, 5, 6]]
index = ['a', 'b']
columns = ['A', 'B', 'C']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df.head())
使用ndarrays创建
data = {'Site':['Google', 'Runoob', 'Wiki'], 'Age':[10, 12, 13]}
df = pd.DataFrame(data)
print (df.head())
使用字典创建
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)
print (df.head())
# 新增一行
df.loc['h'] = [10, 11, 12]
print(df.head())
# 新增一个df
data = [[1, 2, 3], [4, 5, 6]]
index = ['j', 'k']
columns = ['A', 'B', 'C']
df2 = pd.DataFrame(data=data, index=index, columns=columns)
print(df2.head())
# 连接两个df
# axis表示轴,0表示纵向,1表示横向
pd3 = pd.concat([df, df2], axis=0)
print(pd3.head())
# 新增一列
df2['Tang'] = [12, 13]
print(df2.head())
# 连接两个df
data = [[1, 2], [4, 5]]
index = ['j', 'k']
columns = ['D', 'E']
df4 = pd.DataFrame(data=data, index=index, columns=columns)
print(df4.head())
# axis表示轴,0表示纵向,1表示横向
df5 = pd.concat([df2, df4], axis=1)
print(df5.head())
# axios=0表示删除行
# inplace为False表示不在原df上删除,此时df6没有j这一行,df5还有
df6 = df5.drop(['j'], axis=0, inplace=False)
print(df6.head())
# inplace为True表示在原df上删除
df5.drop(['j'], axis=0, inplace=True)
print(df5.head())
# axios=1表示删除列
df5.drop(['A'], axis=1, inplace=True)
print(df5.head())
# 修改某个位置的值
df.loc['a']['A'] = 150
print(df.head())
# 修改索引
df.index = ['f', 'g']
df.set_index = ['f', 'g']
print(df.head())
# 重置索引
df.reset_index(inplace=True)
# 修改某个值
for index, row in df.iterrows():
if arr.__contains__(row['name']):
row['age'] = '1'
df.iloc[index] = row
使用单个label值查询
使用值列表查询
使用数值区间范围查询
使用条件表达式查询 df.loc[df[‘年份’]>2015]
调用函数查询
# lambda
df[lambda df: (df['年份']>2015) & (df['年份']<2018)]
# 自定义函数
def query_def(df):
return (df['年份']>2015) & (df['年份']<2018)
df.loc[query_def]
注意 ● 以上查询方法,既适用于行,也适用于列 ● 查询结果会降维,dataFrame>Series>值类型
# 查询某一列
print(df['A'])
# 查询某一行, df.iloc[行位置,列位置]
print(df.iloc[0])
print(df.loc['a'])
# 查询具体某个位置
print(df.iloc[0, 1])
print(df.loc['a']['A'])
# 查询某列包含关键词的数据,多个关键词使用|分隔
print(df.loc[df['列名'].str.contains('关键词')])