使用其他数据框创建pandas dataframe列


bg_d = pd.read_excel(f, sheet_name=None, index_col=None, usecols="C:N", skiprows=23, nrows=8)
identifier = pd.read_excel(f, sheet_name=None, index_col=None, header=None, usecols="B", skiprows=13, nrows=1)

这将产生两个数据帧字典(excel中每个工作表一个数据帧),如下所示:

bg_d: {
Sheet1: 1 2 3 4 5 6 7 8 9 10 11 12,
Sheet2: 1 2 3 4 5 6 7 8 9 10 11 12,
Sheet3: 1 2 3 4 5 6 7 8 9 10 11 12 }
# note - each column (1, 2,3 etc.) has my experimental numbers
identifier: {
Sheet1: Water Sample,
Sheet2: Glycerin,
Sheet3: Serum }

我希望每个表单的最终数据帧看起来像这样:

Water Sample 1 2 3 4 5 6 7 8 9 10 11 12
Glycerin 1 2 3 4 5 6 7 8 9 10 11 12
Serum 1 2 3 4 5 6 7 8 9 10 11 12

我试过了:

bg_sheets = []
for sheet, name in bg_d.items():
for s, n in identifier.items():
val = n.values[0][0]
sheet["Plate"] = val
bg_sheets.append(sheet)

但是我得到一个字符串错误:

Exception has occurred: TypeError
'str' object does not support item assignment

错误是由bg_d.items()返回键和值引起的,因此sheet是字符串,而不是数据帧。你只需要一个循环。代码将是这样的:

bg_sheets = []
for name,sheet  in bg_d.items():
n = identifier.get(name)
val = n.values[0][0]
sheet["Plate"] = val
bg_sheets.append(sheet)

最新更新