【问题标题】:matching data in two excel sheets, and storing the data got matched在两个excel表中匹配数据,并存储匹配的数据
【发布时间】:2019-12-24 18:10:14
【问题描述】:

假设我有两张 Excel 表格。命名为 fruitsfruitsDetail

 fruits.xlsx                                          fruitsDetail.xlsx
**Name**                                        **Name  height  weight** circumference
apple                                       apple    25cm  50g      10cm
banana                                      apple    35cm  60g      10cm
orange                                      banana    15cm  20g     7cm
                                            banana    24cm   66g    6cm
....                                        orange    45cm  60g     20cm
                                            orange    36cm  76g     20cm
                                            orange    88cm  100g    30cm
                                                      .......

我一直在使用 jupyter notebook 和 pandas

import pandas as pd
df = pd.read_excel(open(r'C:\Users\fruits.xlsx','rb'))
mf = pd.read_excel(open(r'C:\Users\fruitsDetail.xlsx','rb'))

现在我想按周长保存数据... 输出如下在单独的 excel 表中

name    circumference     weight
apple   10cm              50g,60g
banana  7cm                20g
banana  6cm                66g
orange  20cm               60g,76g
orange   30cm              100g

【问题讨论】:

  • 您要比较 csv 的整行是否相同,还是要比较单个单元格?

标签: python python-3.x pandas


【解决方案1】:

据我了解,您想对权重列进行字符串聚合。对于每个名称,圆周实例。数据已经全部存在于 mf 数据框中,因此不需要合并它。像下面这样的东西应该可以工作:

agg_df = mf.groupby(['name','circumference'])['weight'].apply(','.join).reset_index()
agg_df.to_excel("newoutput.xlsx")

【讨论】:

  • 它给了我错误,for "sequence item 0: expected str instance, float found 在处理上述异常期间,发生了另一个异常:"
  • 您的表格中列出的克数是否只是格式化?如果是这样,您首先需要将列转换为字符串。
猜你喜欢
  • 2014-10-28
  • 2013-04-18
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-05
相关资源
最近更新 更多