Pandas_合并和分组聚合

一、pandas统计电影分类情况

## 重新构造一个全为0的数组,列名为分类
## 如果某一条数据中分类出现过,就让0变为1

data_movies = r"C:\Users\dell\Desktop\Python学习\14100_HM数据科学库课件\day04\datasets_IMDB-Movie-Data.csv"
df = pd.read_csv(data_movies)
print(df["Genre"])
# 统计各电影类型的个数
# 统计分类的列表
temp_list = df["Genre"].str.split(",").tolist()  # 一个列表形式:[[],[]]
genre_list = list(set([i for j in temp_list for i in j]))
# 构造全为0的数组
zeros_df = pd.DataFrame(np.zeros(shape=(df.shape[0], len(genre_list)), dtype=int), columns=genre_list)

# 给每个电影出现分类的位置赋值
for i in range(df.shape[0]):
    zeros_df.loc[i, temp_list[i]] = 1

# 统计数量和,列项求和
genre_count = zeros_df.sum(axis=0)
print(genre_count)

二、join用法
如下所示
在这里插入图片描述
pd.concat的三种join方式

df1=pd.DataFrame(np.ones((3,4))*0,columns=['A','B','C','D'],index=[1,2,3])
df2=pd.DataFrame(np.ones((3,4))*1,columns=['B','C','D',
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pandas中,可以使用`pandas.DataFrame.groupby()`方法对数据进行分组,然后使用`pandas.DataFrame.agg()`方法对分组后的数据进行聚合操作,从而实现合并单元格的功能。具体步骤如下: 1. 读取Excel文件并将其转换为DataFrame对象。 2. 使用`pandas.DataFrame.groupby()`方法按照需要合并的列进行分组。 3. 使用`pandas.DataFrame.agg()`方法对分组后的数据进行聚合操作,其中聚合函数可以是自定义函数或者pandas提供的函数。 4. 将聚合后的数据写入Excel文件中。 下面是一个示例代码,假设需要将Excel文件中的第一列相同的单元格合并,并将合并后的结果写入新的Excel文件中: ```python import pandas as pd # 读取Excel文件并将其转换为DataFrame对象 df = pd.read_excel('input.xlsx') # 定义聚合函数,将分组后的数据进行合并 def merge_cells(x): return { 'values': x.iloc[0], 'merge': [0, len(x) - 1, 1, 2] # 合并单元格的范围 } # 使用groupby方法按照第一列进行分组,并对分组后的数据应用聚合函数 result = df.groupby(df.columns[0]).agg(merge_cells) # 将聚合后的数据写入Excel文件中 result.to_excel('output.xlsx', index=False) ``` 在上面的代码中,`merge_cells()`函数用于将分组后的数据进行合并,其中`x`参数是一个DataFrame对象,表示分组后的数据。`iloc`用于获取分组后的第一行数据,`merge`参数用于指定需要合并的单元格范围。最后,使用`to_excel()`方法将聚合后的数据写入Excel文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值