赞
踩
import pandas as pd
pd.DataFrame(columns={"a":"","b":"","c":""},index=[0])
a | b | c | |
---|---|---|---|
0 | NaN | NaN | NaN |
dict1 = {"name":["Jim", "Lucy", "HanMeimei", "Lili"], "age":[11, 12, 13, 14], "score":[90, 100, 80, 70]}
pd.DataFrame(dict1)
name | age | score | |
---|---|---|---|
0 | Jim | 11 | 90 |
1 | Lucy | 12 | 100 |
2 | HanMeimei | 13 | 80 |
3 | Lili | 14 | 70 |
df1 = pd.DataFrame([[1, 2, 3],["a", "b", "c"], ["a1", "b2", "c3"]], index=["第一行", "第二行", "第三行"],
columns=["第一列", "第二列", "第三列"])
print(df1)
第一列 第二列 第三列
第一行 1 2 3
第二行 a b c
第三行 a1 b2 c3
df1 = pd.read_excel(r".\study\test_excel.xlsx", sheet_name="student")
print("df1---------------\n", df1, type(df1))
df1---------------
name age sex address score
0 刘一 18 女 上海 100
1 花二 40 男 上海 99
2 张三 25 男 北京 80
3 李四 30 男 西安 40
4 王五 70 男 青岛 70
5 孙六 65 女 泰州 90 <class 'pandas.core.frame.DataFrame'>
import numpy as np
array = np.random.rand(2,3) #2行3列
df1 = pd.DataFrame(array,columns=['first','second','third'])
print(df1)
first second third
0 0.671161 0.319496 0.998158
1 0.372354 0.456053 0.945547
array = np.random.rand(8,3)
df1 = pd.DataFrame(array,columns=['first','second','third'])
print(df1.head(3))
first second third
0 0.414661 0.576802 0.733472
1 0.304392 0.706122 0.367632
2 0.737718 0.700953 0.710541
df1.tail()
first | second | third | |
---|---|---|---|
3 | 0.680279 | 0.653830 | 0.120031 |
4 | 0.124661 | 0.803662 | 0.411242 |
5 | 0.018145 | 0.492444 | 0.738249 |
6 | 0.871111 | 0.483860 | 0.381885 |
7 | 0.719817 | 0.961853 | 0.526238 |
print(df1.reset_index())
print(df1.set_index("第0列"))
index 第0列 第1列 第2列 0 第0行 0.938223 0.450784 0.958613 1 第1行 0.005883 0.433231 0.654217 2 第2行 0.729364 0.424220 0.960798 3 第3行 0.829794 0.090153 0.134994 4 第4行 0.391034 0.001752 0.626693 5 第5行 0.975350 0.318862 0.626255 6 第6行 0.400560 0.815432 0.417564 7 第7行 0.359789 0.565618 0.130726 第1列 第2列 第0列 0.938223 0.450784 0.958613 0.005883 0.433231 0.654217 0.729364 0.424220 0.960798 0.829794 0.090153 0.134994 0.391034 0.001752 0.626693 0.975350 0.318862 0.626255 0.400560 0.815432 0.417564 0.359789 0.565618 0.130726
df1.index = ["第"+ str(i) +"行" for i in range(8)]
df1.columns = ["第"+ str(i) +"列" for i in range(3)]
print(df1.index)
print(df1.columns)
Index(['第0行', '第1行', '第2行', '第3行', '第4行', '第5行', '第6行', '第7行'], dtype='object')
Index(['第0列', '第1列', '第2列'], dtype='object')
df1.values
array([[0.38875075, 0.43803462, 0.12459244],
[0.56419024, 0.75568682, 0.13764671],
[0.80400939, 0.79626389, 0.66016963],
[0.31140927, 0.76798005, 0.21945531],
[0.14646588, 0.92297446, 0.7054672 ],
[0.66496854, 0.30049814, 0.54736761],
[0.07047599, 0.47393679, 0.2407982 ],
[0.5220982 , 0.61223117, 0.68845914]])
print(df1.dtypes) #查看dataframe数据类型
print(df1.shape) #查看dataframe的形状
print(df1.ndim) #返回维数
print(df1.size) #查看dataframe的数据数目
print(df1.axes) #查看横纵坐标的标签名
first float64
second float64
third float64
dtype: object
(8, 3)
2
24
[RangeIndex(start=0, stop=8, step=1), Index(['first', 'second', 'third'], dtype='object')]
df1 = pd.read_excel(r".\study\test_excel.xlsx", sheet_name="student")
print("df1---------------\n", df1, type(df1))
df1---------------
name age sex address score
0 刘一 18 女 上海 100
1 花二 40 男 上海 99
2 张三 25 男 北京 80
3 李四 30 男 西安 40
4 王五 70 男 青岛 70
5 孙六 65 女 泰州 90 <class 'pandas.core.frame.DataFrame'>
print(df1.at[3, "age"])
print(df1.iat[3, 0])
print(df1.loc[3, 'age'])
30
李四
30
print(df1.name[2])
print(df1["name"][4]) # df1["name"]得到一列,series,df1["name"][4]得到该series中的一个数据
张三
王五
print(df1.loc[2, "name"])
张三
df1 = pd.read_excel(r".\study\test_excel.xlsx", sheet_name="student")
print("df1---------------\n", df1["age"]) # 通过索引方式访问
print("df1---------------\n", df1.age) # 通过属性方式访问
print(df[['name','age']]) # 通过索引数组方式访问
df1--------------- 0 18 1 40 2 25 3 30 4 70 5 65 Name: age, dtype: int64 df1--------------- 0 18 1 40 2 25 3 30 4 70 5 65 Name: age, dtype: int64 name age 0 刘一 18 1 花二 40 2 张三 25 3 李四 30 4 王五 70 5 孙六 65
df1 = pd.read_csv(r".\study\weather.txt")
df1.set_index('ymd', inplace=True) #将行标签改为第ymd列的值
df1.loc["2018-01-03"]
bWendu 2℃
yWendu -5℃
tianqi 多云
fengxiang 北风
fengli 1-2级
aqi 28
aqiInfo 优
aqiLevel 1
Name: 2018-01-03, dtype: object
df1 = pd.read_csv(r".\study\weather.txt")
df1.set_index('ymd', inplace=True) #将行标签改为第ymd列的值
print(df1.loc[['2018-01-03','2018-01-04','2018-01-08'], 'bWendu']) #得到series类型
print(df1.loc[['2018-01-03','2018-01-04','2018-01-05'], ['bWendu', 'yWendu']]) #得到DataFrame类型
df2 = df1.loc['2018-01-03':'2018-01-05', 'bWendu':'fengxiang'] # 行列都是范围
print("df2-----------\n", df2)
df1.loc["2018-01-03"]
ymd 2018-01-03 2℃ 2018-01-04 0℃ 2018-01-08 2℃ Name: bWendu, dtype: object bWendu yWendu ymd 2018-01-03 2℃ -5℃ 2018-01-04 0℃ -8℃ 2018-01-05 3℃ -6℃ df2----------- bWendu yWendu tianqi fengxiang ymd 2018-01-03 2℃ -5℃ 多云 北风 2018-01-04 0℃ -8℃ 阴 东北风 2018-01-05 3℃ -6℃ 多云~晴 西北风 bWendu 2℃ yWendu -5℃ tianqi 多云 fengxiang 北风 fengli 1-2级 aqi 28 aqiInfo 优 aqiLevel 1 Name: 2018-01-03, dtype: object
df2.loc[[True, False, True]] # 布尔列表,和行对应
bWendu | yWendu | tianqi | fengxiang | |
---|---|---|---|---|
ymd | ||||
2018-01-03 | 2℃ | -5℃ | 多云 | 北风 |
2018-01-05 | 3℃ | -6℃ | 多云~晴 | 西北风 |
df1 = pd.read_excel(r".\study\test_excel.xlsx", sheet_name="student")
print("df1---------------\n", df1, type(df1))
print((df1["age"]>50) & (df1["score"]<80))
df1.loc[(df1["age"]>50) & (df1["score"]<80), :]
df1---------------
name age sex address score
0 刘一 18 女 上海 100
1 花二 40 男 上海 99
2 张三 25 男 北京 80
3 李四 30 男 西安 40
4 王五 70 男 青岛 70
5 孙六 65 女 泰州 90 <class 'pandas.core.frame.DataFrame'>
0 False
1 False
2 False
3 False
4 True
5 False
dtype: bool
name | age | sex | address | score | |
---|---|---|---|---|---|
4 | 王五 | 70 | 男 | 青岛 | 70 |
df1.loc[lambda df1: (df1["age"]<50) & (df1["score"]<80), :]
name | age | sex | address | score | |
---|---|---|---|---|---|
3 | 李四 | 30 | 男 | 西安 | 40 |
df1 = pd.read_csv(r".\study\weather.txt")
df1.set_index('ymd', inplace=True) #将行标签改为第ymd列的值
# df1.index.str.startswith("2018-09") & (df1["aqiLevel"]==1)
def query_my_data(df):
return df.index.str.startswith("2018-09")& df1["aqiLevel"]==1
df1.loc[query_my_data,:].head(5) #传函数名,参数就为df1
bWendu | yWendu | tianqi | fengxiang | fengli | aqi | aqiInfo | aqiLevel | |
---|---|---|---|---|---|---|---|---|
ymd | ||||||||
2018-09-01 | 27℃ | 19℃ | 阴~小雨 | 南风 | 1-2级 | 50 | 优 | 1 |
2018-09-04 | 31℃ | 18℃ | 晴 | 西南风 | 3-4级 | 24 | 优 | 1 |
2018-09-05 | 31℃ | 19℃ | 晴~多云 | 西南风 | 3-4级 | 34 | 优 | 1 |
2018-09-06 | 27℃ | 18℃ | 多云~晴 | 西北风 | 4-5级 | 37 | 优 | 1 |
2018-09-07 | 27℃ | 16℃ | 晴 | 西北风 | 3-4级 | 22 | 优 | 1 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。