Pandas数据分析100例
Posted Harris-H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas数据分析100例相关的知识,希望对你有一定的参考价值。
Pandas数据分析100例
1.列表转Series
import pandas as pd
if __name__ == '__main__':
courses = ['语文', '数学', '英语', '计算机']
result = pd.Series(courses)
print(result)
"""
0 语文
1 数学
2 英语
3 计算机
dtype: object
"""
2.Dict转Series
import pandas as pd
grades = '语文': 80, '数学':90, '英语': 100
result = pd.Series(grades)
print(result)
"""
语文 80
数学 90
英语 100
dtype: int64
"""
3.Series转LIst
import pandas as pd
if __name__ == '__main__':
grades = '语文': 80, '数学': 90, '英语': 100
result = pd.Series(grades)
# print(result)
print(result.tolist())
"""
[80, 90, 100]
"""
4.Series转DataFrame
import pandas as pd
if __name__ == '__main__':
grades = '语文': 80, '数学': 90, '英语': 100
tmp = pd.Series(grades)
result = pd.DataFrame(tmp, columns=['grade'])
print(result)
"""
grade
语文 80
数学 90
英语 100
"""
5.Numpy创建Series
import pandas as pd, numpy as np
if __name__ == '__main__':
s = pd.Series(np.arange(10, 100, 10), index=np.arange(101, 110), dtype='float')
print(s)
101 10.0
102 20.0
103 30.0
104 40.0
105 50.0
106 60.0
107 70.0
108 80.0
109 90.0
dtype: float64
6.转换Series的数据类型
import pandas as pd
if __name__ == '__main__':
s = pd.Series(
data=["001", "002", "003", "004"],
index=list("abcd")
)
print(s)
print(s.astype(int)) # 类型
print(s.map(int)) # 函数
a 001
b 002
c 003
d 004
dtype: object
a 1
b 2
c 3
d 4
dtype: int32
a 1
b 2
c 3
d 4
dtype: int64
7.添加新数据
import pandas as pd
if __name__ == '__main__':
s = pd.Series(
data='语文': 99, '数学': 100
)
s = s.append(pd.Series(
data='英语': 150
))
print(s)
语文 99
数学 100
英语 150
dtype: int64
8.reset index 转换为df
import pandas as pd
if __name__ == '__main__':
s = pd.Series(
data='语文': 99, '数学': 100
)
s = s.reset_index()
s.columns = ['project', 'grade']
print(s)
project grade
0 语文 99
1 数学 100
9.Dict创建df
import pandas as pd
if __name__ == '__main__':
df = pd.DataFrame(
data=
'姓名': ['herio', 'xiaoo', 'gsda'],
'性别': ['男', '女', '男'],
'年龄': [18, 20, 19]
)
print(df)
姓名 性别 年龄
0 herio 男 18
1 xiaoo 女 20
2 gsda 男 19
10.df设置索引列
import pandas as pd
if __name__ == '__main__':
df = pd.DataFrame(
data=
'姓名': ['herio', 'xiaoo', 'gsda'],
'性别': ['男', '女', '男'],
'年龄': [18, 20, 19]
)
df.set_index('姓名', inplace=True)
print(df)
性别 年龄
姓名
herio 男 18
xiaoo 女 20
gsda 男 19
11.生成日期
import pandas as pd
if __name__ == '__main__':
res = pd.date_range(start='2022-01-01',end='2022-01-31')
res_1 = pd.date_range(start='2022-01-01',periods=31)
print(res,res_1,sep='\\n')
取每年的所有周一(freq)
import pandas as pd
if __name__ == '__main__':
res = pd.date_range(start='2022-01-01',end='2022-12-31',freq='W-MON')
print(res)
生成某一天的二十四个小时的日期
import pandas as pd
if __name__ == '__main__':
res = pd.date_range(start='2022-01-01', periods=24, freq='H')
res_1 = pd.date_range(start='2022-01-01', end='2022-01-02', closed='left',freq='H')
print(res)
print(res_1)
日期生成DataFrame
import pandas as pd
if __name__ == '__main__':
data = pd.date_range(start='2022-02-01',periods=31)
res = pd.DataFrame(data=data,columns=['day'])
res['day_of_year'] = res['day'].dt.day_of_year
print(res)
day day_of_year
0 2022-02-01 32
1 2022-02-02 33
2 2022-02-03 34
.....
29 2022-03-02 61
30 2022-03-03 62
生成随机数据列df
import pandas as pd
import numpy as np
if __name__ == '__main__':
year = pd.date_range(start='2022-01-01',periods=1000)
data =
'normal': np.random.normal(loc=0,scale=1,size=1000),
'uniform': np.random.uniform(low=0,high=1,size=1000),
'binomial': np.random.binomial(n=1,p=0.2)
df = pd.DataFrame(data=data,index=year)
print(df)
normal uniform binomial
2022-01-01 -1.212357 0.561198 0
2022-01-02 1.455127 0.671026 0
2022-01-03 1.458189 0.922212 0
2022-01-04 -0.164604 0.948922 0
2022-01-05 -0.292973 0.602961 0
... ... ... ...
2024-09-22 -0.350369 0.788879 0
2024-09-23 -0.716147 0.671242 0
2024-09-24 -0.345326 0.282493 0
2024-09-25 0.000214 0.735941 0
2024-09-26 0.072581 0.719543 0
打印前10行和后5行
print(df.head(10))
print()
print(df.tail(5))
描述基本信息
print(df.info())
print(df.describe())
DatetimeIndex: 1000 entries, 2022-01-01 to 2024-09-26
Freq: D
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 normal 1000 non-null float64
1 uniform 1000 non-null float64
2 binomial 1000 non-null int64
dtypes: float64(2), int64(1)
memory usage: 31.2 KB
None
normal uniform binomial
count 1000.000000 1000.000000 1000.0
mean -0.038351 0.513840 0.0
std 1.000126 0.289779 0.0
min -3.250206 0.000009 0.0
25% -0.732684 0.263531 0.0
50% -0.091297 0.521737 0.0
75% 0.612340 0.773006 0.0
max 3.682969 0.997907 0.0
统计数据列的值出现的次数
print(df['binomial'].value_counts())
前50行数据存到csv文件中
df.head(50).to_csv("数据前50行.csv")
csv读取为DataFrame
import pandas as pd
import numpy as np
if __name__ == '__main__':
df = pd.read_csv("数据前50行.csv",index_col=0)
print(df.info())
print(df.head(10))
以上是关于Pandas数据分析100例的主要内容,如果未能解决你的问题,请参考以下文章
Pandas实战教程 | 统一替换某列中的值 .replace()
pandas 是不是读取完整的数据文件并将其存储在数据框中?在 pandas 中加载 100mb 文件是不是有效?