【发布时间】:2020-03-28 19:14:47
【问题描述】:
我正在将一个 Excel 表导入数据框,该表的标题分为两行:
Colour | NaN | Shape | Mass | NaN
NaN | width | NaN | NaN | Torque
green | 33 | round | 2 | 6
etc
我想将前两行折叠成一个标题:
Colour | width | Shape | Mass | Torque
green | 33 | round | 2 | 6
...
我试过merged_header = df.loc[0].combine_first(df.loc[1])
但我不确定如何将其恢复到原始数据框中。
我试过了:
# drop top 2 rows
df = df.drop(df.index[[0,1]])
# then add the merged one in:
res = pd.concat([merged_header, df], axis=0)
但这只是将merged_header 作为一列插入。我从this tutorial 尝试了merge 的其他一些组合,但没有运气。
merged_header.append(df) 给出了类似的错误结果,res = df.append(merged_header) 几乎是正确的,但是表头在尾端:
green | 33 | round | 2 | 6
...
Colour | width | Shape | Mass | Torque
为了提供更多细节,这是我目前所拥有的:
df = pd.read_excel(ltro19, header=None, skiprows=9)
# delete all empty columns & rows
df = df.dropna(axis = 1, how = 'all')
df = df.dropna(axis = 0, how = 'all')
以防万一影响下一步。
【问题讨论】:
-
你只有 5 列吗?
-
('虽然不是通用的快速方法是
df = pd.read_excel('filename', skiprows=2, header=None, names=['colour', 'width', 'shape', 'mass', 'torque'])... -
@JonClements,没有。我有 20 列标题很长,还有许多 excel 表(格式相同,但有其他标题)。这只是一个简化的例子。
标签: python pandas dataframe pandas-groupby