'''
sep: 制定哪个符号作为分割符(默认是 “ ,”)
'''
pd.read_csv('./data/type_comma')
a b c d message
0 1 2 3 4 hello
1 5 6 7 8 world
2 9 10 11 12 python
df1 = pd.read_csv('./data/type_line',sep='-')
你好 我好 他也好
0 也许 大概 有可能
1 然而 未必 不见得
这样读取的数据没有行名自动加上,默认使用第一行数据作为列明
df1 = pd.read_csv('./data/type_line',sep='-',header=None)
0 1 2
0 你好 我好 他也好
1 也许 大概 有可能
2 然而 未必 不见得
pd.read_csv('./data/wheats.tsv',sep='\t',header=None)
0 1 2 3 4 5 6 7
0 15.26 14.84 0.8710 5.763 3.312 2.2210 5.220 Kama
1 14.88 14.57 0.8811 5.554 3.333 1.0180 4.956 Kama
。。。
207 13.20 13.66 0.8883 5.236 3.232 8.3150 5.056 Canadian
208 11.84 13.21 0.8521 5.175 2.836 3.5980 5.044 Canadian
209 12.30 13.34 0.8684 5.243 2.974 5.6370 5.063 Canadian
210 rows × 8 columns
功能:用来读取table separated value tsv文件,该文件是是用 \t 分割的一系列值
pd.read_table('./data/wheats.tsv')
15.26 14.84 0.871 5.763 3.312 2.221 5.22 Kama
0 14.88 14.57 0.8811 5.554 3.333 1.0180 4.956 Kama
1 14.29 14.09 0.9050 5.291 3.337 2.6990 4.825 Kama
。。。
207 11.84 13.21 0.8521 5.175 2.836 3.5980 5.044 Canadian
208 12.30 13.34 0.8684 5.243 2.974 5.6370 5.063 Canadian
209 rows × 8 columns
pd.read_table('./data/wheats.tsv',header=None)
0 1 2 3 4 5 6 7
0 15.26 14.84 0.8710 5.763 3.312 2.2210 5.220 Kama
1 14.88 14.57 0.8811 5.554 3.333 1.0180 4.956 Kama
。。。
207 13.20 13.66 0.8883 5.236 3.232 8.3150 5.056 Canadian
208 11.84 13.21 0.8521 5.175 2.836 3.5980 5.044 Canadian
209 12.30 13.34 0.8684 5.243 2.974 5.6370 5.063 Canadian
210 rows × 8 columns
pd.read_table('./data/type_comma',sep=',')
a b c d message
0 1 2 3 4 hello
1 5 6 7 8 world
2 9 10 11 12 python
可能需要安装库
conda install openpyxl
conda install xlsxwriter
conda install xlrd
df2 = pd.read_excel('./data/jfeng.xlsx')
df2
0 1 2 3 4
0 26 81 38 73 68
1 1 68 64 65 79
2 7 13 92 19 61
3 53 79 31 45 46
4 56 8 56 75 54
功能:将DataFrame写入excel表格
注意:写入时用DataFrame对象调用df.to_excel()
sheet_name='Sheet1' 默认是表1
df.to_excel('./jf.xlsx')
connection = sqlite3.connect('./data/weather_2012.sqlite')
connection
查询数据库内容–输入Sql语句
#查询数据库表中的数据,并设置索引,默认自动创建索引
pd.read_sql('select * from weather_2012',connection)
df对象.to_sql(‘要新建的表名’ , 连接的数据库对象)
df2.to_sql('text',connection)
connection.execute(‘drop table jfeng’) # drop table 要删除的表格名
connection.execute('drop table text')
url = https://raw.githubusercontent.com/datasets/investor-flow-of-funds-us/master/data/weekly.csv
过去网页上面的数据
url = ‘https://raw.githubusercontent.com/datasets/investor-flow-of-funds-us/master/data/weekly.csv’
pd.read_csv(url)
各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具。它根据一个或多个键对数据进行聚合,并根据行和列上的分组键将数据分配到各个矩形区域中
创建一个表数据
data = np.random.randint(60,100,size=(6,2))
columns = ['height','weight']
df = DataFrame(data=data,columns=columns)
df['age'] = [20,18,30,26,22,32]
df['smoke'] = [True,False,True,False,False,False]
df['sex'] = ['male','female','male','male','female','female']
df
height weight age smoke sex
0 78 82 20 True male
1 80 73 18 False female
2 66 88 30 True male
3 97 86 26 False male
4 70 88 22 False female
5 67 64 32 False female
求男性的平均年龄 和 女性的平均年龄
df.groupby('sex').groups #先将性别进行分组
df.groupby('sex')['age'].mean() #对年龄求平均值
df.groupby('sex')[['age','height','smoke','weight']].mean() #对各列进行求平均值
age height smoke weight
sex
female 24.000000 72.333333 0.000000 75.000000
male 25.333333 80.333333 0.666667 85.333333
pd.pivot_table(data,values=None,index=None,columns=None,aggfunc=’mean’,fill_value=None,margins=False,dropna=True,margins_name=’All’)
'''
data:要查看的数据
index:以哪个列作为筛选条件
aggfunc:聚合方式
'''
pd.pivot_table(df,index='sex')
age height smoke weight
sex
female 24.000000 86.666667 0.000000 87.666667
male 25.333333 88.666667 0.666667 79.000000
sex female male
age 24.000000 25.333333
height 86.666667 88.666667
smoke 0.000000 0.666667
weight 87.666667 79.000000
pd.crosstab(index,colums)
是一种用于计算分组频率的特殊透视图,对数据进行汇总
# 男性和女性 吸烟和不吸烟 的人数
pd.crosstab(index=df.sex,columns=df.smoke)
smoke False True
sex
female 3 0
male 1 2
pd.crosstab(index=df.smoke,columns=df.sex)
sex female male
smoke
False 3 1
True 0 2