pandas

1. dataframe转列表

使用 tolist() 方法将 Dataframe 列转换为列表。Pandas DataFrame 中的一列就是一个 PandasSeries。因此,如果我们需要将一列转换为一个列表,可以使用Series中的tolist()方法。
在下面的代码中,df[‘DOB’] 从 DataFrame 中返回名称为 DOB 的 Series 或列。tolist() 方法将 Series 转换为一个列表。

import pandas as pd

df=pd.DataFrame([
        ['James',   '1/1/2014',    '1000'],
        ['Michelina',   '2/1/2014',    '12000'],
        ['Marc',   '3/1/2014',    '36000'],
        ['Bob',   '4/1/2014',    '15000'],
        ['Halena',   '4/1/2014',    '12000']
        ], columns=['Name', 'DOB','Salary'])

print("Pandas DataFrame:\n\n",df,"\n")

list_of_single_column = df['DOB'].tolist()

print("the list of a single column from the dataframe\n",
        list_of_single_column,
        "\n",
        type(list_of_single_column))

2. dataframe转字符串

df['A'] = df['A'].astype(str)

3. dataframe上下拼接:axis = 0

pd.concat( objs, axis=0, join=‘outer’, join_axes=None,ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=None, copy=True,)
objs:需要连接的对象,比如:[df1, df2],需要将合并的数据用综括号包围;
axis=0:拼接方式是上下堆叠,当axis=1表示左右拼接;
join:参数控制的是外连接还是内连接,join='outer’表示外连接,保留两个表中的所有信息;join="inner"表示内连接,拼接结果只保留两个表共有的信息;
join_axes:参数是在内连接时选择要完整保留哪个表的索引,但是这个参数在官方文档中提醒即将被弃用。
import pandas as pd

d1 = [["xiaolei",20,10081],["xiaowu",30,10082]]
t1 = pd.DataFrame(d1)
print(t1)
print("*"*50)
d2 = [["xiaowang",22,10083],["xiaoming",25,10084]]
t2 = pd.DataFrame(d2)
print(t2)
print("*"*25+"合并结果如下(默认是上下堆叠)"+"*"*25)
t = pd.concat([t1,t2])
print(t)

>>
         0   1      2
0  xiaolei  20  10081
1   xiaowu  30  10082
**************************************************
          0   1      2
0  xiaowang  22  10083
1  xiaoming  25  10084
********************合并结果如下(默认是上下堆叠)********************
          0   1      2
0   xiaolei  20  10081
1    xiaowu  30  10082
0  xiaowang  22  10083
1  xiaoming  25  10084

4. 左右拼接:axis=1

import pandas as pd

d1 = [["xiaolei",20,10081],["xiaowu",30,10082]]
t1 = pd.DataFrame(d1)
print(t1)
print("*"*50)
d2 = [["xiaowang",22,10083],["xiaoming",25,10084]]
t2 = pd.DataFrame(d2)
print(t2)
print("*"*20+"合并结果如下(左右拼接)"+"*"*20)
t = pd.concat([t1,t2], axis=1)
print(t)

>>
   0   1      2
0  xiaolei  20  10081
1   xiaowu  30  10082
**************************************************
          0   1      2
0  xiaowang  22  10083
1  xiaoming  25  10084
********************合并结果如下(左右拼接)********************
         0   1      2         0   1      2
0  xiaolei  20  10081  xiaowang  22  10083
1   xiaowu  30  10082  xiaoming  25  10084

5. DataFrame的GroupBy:对二分类对象进行遍历

import pandas as pd
data = [['a', 'A', '1等', 109], ['b', 'C', '1等', 112], ['c', 'A', '1等', 125], ['d', 'B', '2等', 120],
        ['e', 'B', '1等', 126], ['f', 'B', '2等', 133], ['g', 'C', '2等', 124], ['h', 'A', '1等', 134],
        ['i', 'C', '2等', 117], ['j', 'A', '2等', 128], ['h', 'B', '1等', 130], ['i', 'C', '2等', 122]]
index = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
columns = ['name', 'class_1', 'class_2', 'num']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df)
print("===============================")


for (key1, key2), group in df.groupby(['class_1', 'class_2']):
        print(key1, key2)
        print("=============================")
        print(group)
        print("==================================================")

请添加图片描述
请添加图片描述

6. pandas求平均

df.mean()函数默认是等价于df.mean(0),即按轴方向求平均,得到每列数据的平均值。
相反的df.mean(1)则代表按行方向求平均,得到每行数据的平均值。
data = {
		'A': [1, 2, 3],
		'B': [4, 5, 6],
		'C': [7, 8, 9]
}
df = pd.DataFrame(data)

output:
output

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值