导入相应数据分析模块¶

In [1]:
import pandas as pd
import numpy as np
# 生成示例数据
np.random.seed(0)
companies = ['梦想翅膀科技有限公司', '天涯科技有限公司', '梦飞扬科技有限公司', 
             '云上科技有限公司', '智慧星辰科技有限公司', '创造无限科技有限公司',
             '灵感科技有限公司', '未来驰骋科技有限公司', '创新翅膀科技有限公司', '奇思妙想科技有限公司']
prices = np.random.randint(10, 100, size=10)
volumes = np.random.randint(1000, 10000, size=10)
changes = np.random.uniform(-1, 1, size=10)
# 构造DataFrame对象
data = {
    'Company': companies,
    'Price': prices,
    'Volume': volumes,
    'Change': changes
}
df = pd.DataFrame(data)

# 显示DataFrame
print(df)
      Company  Price  Volume    Change
0  梦想翅膀科技有限公司     54    7744  0.296344
1    天涯科技有限公司     57    4468 -0.263517
2   梦飞扬科技有限公司     74    1705  0.914310
3    云上科技有限公司     77    3599 -0.719298
4  智慧星辰科技有限公司     77    3222  0.740175
5  创造无限科技有限公司     19    8768 -0.052784
6    灵感科技有限公司     93    3897  0.601822
7  未来驰骋科技有限公司     31    1537  0.040955
8  创新翅膀科技有限公司     46    7216  0.357759
9  奇思妙想科技有限公司     97    7921  0.441265

查看df¶

In [2]:
df
Out[2]:
Company Price Volume Change
0 梦想翅膀科技有限公司 54 7744 0.296344
1 天涯科技有限公司 57 4468 -0.263517
2 梦飞扬科技有限公司 74 1705 0.914310
3 云上科技有限公司 77 3599 -0.719298
4 智慧星辰科技有限公司 77 3222 0.740175
5 创造无限科技有限公司 19 8768 -0.052784
6 灵感科技有限公司 93 3897 0.601822
7 未来驰骋科技有限公司 31 1537 0.040955
8 创新翅膀科技有限公司 46 7216 0.357759
9 奇思妙想科技有限公司 97 7921 0.441265

查看df前5行¶

In [3]:
df.head()
Out[3]:
Company Price Volume Change
0 梦想翅膀科技有限公司 54 7744 0.296344
1 天涯科技有限公司 57 4468 -0.263517
2 梦飞扬科技有限公司 74 1705 0.914310
3 云上科技有限公司 77 3599 -0.719298
4 智慧星辰科技有限公司 77 3222 0.740175

查看df后5行¶

In [4]:
df.tail()
Out[4]:
Company Price Volume Change
5 创造无限科技有限公司 19 8768 -0.052784
6 灵感科技有限公司 93 3897 0.601822
7 未来驰骋科技有限公司 31 1537 0.040955
8 创新翅膀科技有限公司 46 7216 0.357759
9 奇思妙想科技有限公司 97 7921 0.441265

查看行和列的索引值¶

In [5]:
df.columns
Out[5]:
Index(['Company', 'Price', 'Volume', 'Change'], dtype='object')
In [6]:
df.index
Out[6]:
RangeIndex(start=0, stop=10, step=1)

分别查看Company、Price列的值¶

In [7]:
df[['Company','Price']]
Out[7]:
Company Price
0 梦想翅膀科技有限公司 54
1 天涯科技有限公司 57
2 梦飞扬科技有限公司 74
3 云上科技有限公司 77
4 智慧星辰科技有限公司 77
5 创造无限科技有限公司 19
6 灵感科技有限公司 93
7 未来驰骋科技有限公司 31
8 创新翅膀科技有限公司 46
9 奇思妙想科技有限公司 97

连续切片,取行 0 到 5行,列0到5 列,左闭右开,所有数据¶

In [8]:
df.iloc[:5,0:5]
Out[8]:
Company Price Volume Change
0 梦想翅膀科技有限公司 54 7744 0.296344
1 天涯科技有限公司 57 4468 -0.263517
2 梦飞扬科技有限公司 74 1705 0.914310
3 云上科技有限公司 77 3599 -0.719298
4 智慧星辰科技有限公司 77 3222 0.740175

筛选出 第1到 4 行,第 1、3列的所有数据¶

In [9]:
df.iloc[1:4,[1,3]]
Out[9]:
Price Change
1 57 -0.263517
2 74 0.914310
3 77 -0.719298

分别筛选出Company列值为" 天涯科技有限公司"和不为" 云上科技有限公司 "的所有数据¶

In [10]:
df.loc[df["Company"] != "天涯科技有限公司"]
Out[10]:
Company Price Volume Change
0 梦想翅膀科技有限公司 54 7744 0.296344
2 梦飞扬科技有限公司 74 1705 0.914310
3 云上科技有限公司 77 3599 -0.719298
4 智慧星辰科技有限公司 77 3222 0.740175
5 创造无限科技有限公司 19 8768 -0.052784
6 灵感科技有限公司 93 3897 0.601822
7 未来驰骋科技有限公司 31 1537 0.040955
8 创新翅膀科技有限公司 46 7216 0.357759
9 奇思妙想科技有限公司 97 7921 0.441265
In [11]:
df.loc[df["Company"] == "天涯科技有限公司"]
Out[11]:
Company Price Volume Change
1 天涯科技有限公司 57 4468 -0.263517

以Company分组,求每一种Price所有公司的个数¶

In [12]:
df.groupby('Company').count()
Out[12]:
Price Volume Change
Company
云上科技有限公司 1 1 1
创新翅膀科技有限公司 1 1 1
创造无限科技有限公司 1 1 1
天涯科技有限公司 1 1 1
奇思妙想科技有限公司 1 1 1
智慧星辰科技有限公司 1 1 1
未来驰骋科技有限公司 1 1 1
梦想翅膀科技有限公司 1 1 1
梦飞扬科技有限公司 1 1 1
灵感科技有限公司 1 1 1

求每个公司的Change字段值,占全部公司的Change之和比,并增加新的字段change_rate¶

In [13]:
df['change_rate']=df['Change']/ df['Change'].sum()*100
df
Out[13]:
Company Price Volume Change change_rate
0 梦想翅膀科技有限公司 54 7744 0.296344 12.572760
1 天涯科技有限公司 57 4468 -0.263517 -11.180040
2 梦飞扬科技有限公司 74 1705 0.914310 38.790777
3 云上科技有限公司 77 3599 -0.719298 -30.517151
4 智慧星辰科技有限公司 77 3222 0.740175 31.402845
5 创造无限科技有限公司 19 8768 -0.052784 -2.239424
6 灵感科技有限公司 93 3897 0.601822 25.533042
7 未来驰骋科技有限公司 31 1537 0.040955 1.737566
8 创新翅膀科技有限公司 46 7216 0.357759 15.178383
9 奇思妙想科技有限公司 97 7921 0.441265 18.721242

求Company列不同值的和¶

In [14]:
df.Company.value_counts()
Out[14]:
Company
梦想翅膀科技有限公司    1
天涯科技有限公司      1
梦飞扬科技有限公司     1
云上科技有限公司      1
智慧星辰科技有限公司    1
创造无限科技有限公司    1
灵感科技有限公司      1
未来驰骋科技有限公司    1
创新翅膀科技有限公司    1
奇思妙想科技有限公司    1
Name: count, dtype: int64

获取每一种Company对应的Price¶

In [15]:
df.groupby('Company').Price.agg(['count'])
Out[15]:
count
Company
云上科技有限公司 1
创新翅膀科技有限公司 1
创造无限科技有限公司 1
天涯科技有限公司 1
奇思妙想科技有限公司 1
智慧星辰科技有限公司 1
未来驰骋科技有限公司 1
梦想翅膀科技有限公司 1
梦飞扬科技有限公司 1
灵感科技有限公司 1

设定Company列为行索引¶

In [16]:
 df.set_index(["Company"])
Out[16]:
Price Volume Change change_rate
Company
梦想翅膀科技有限公司 54 7744 0.296344 12.572760
天涯科技有限公司 57 4468 -0.263517 -11.180040
梦飞扬科技有限公司 74 1705 0.914310 38.790777
云上科技有限公司 77 3599 -0.719298 -30.517151
智慧星辰科技有限公司 77 3222 0.740175 31.402845
创造无限科技有限公司 19 8768 -0.052784 -2.239424
灵感科技有限公司 93 3897 0.601822 25.533042
未来驰骋科技有限公司 31 1537 0.040955 1.737566
创新翅膀科技有限公司 46 7216 0.357759 15.178383
奇思妙想科技有限公司 97 7921 0.441265 18.721242
In [ ]:
 
In [ ]:
 
In [ ]: