我有这样的代码:
df = pd.DataFrame([('bird', 'Falconiformes', 389.0),
('bird', 'Psittaciformes', 24.0),
('mammal', 'Carnivora', 80.2),
('mammal', 'Primates', np.nan),
('mammal', 'Carnivora', 58)],
index=['falcon', 'parrot', 'lion', 'monkey', 'leopard'],
columns=('class', 'order', 'max_speed'))我想对sames值进行重新组合,以便:
gp = df.groupby(['class', 'order','max_speed'])["class"].size().frame()我拿到了这个:
class
class order max_speed
bird Falconiformes 389.0 1
Psittaciformes 24.0 1
mammal Carnivora 58.0 1
80.2 1我把它放在html文件中,但是显示的只是最后一列,而我想要的是前三列。有什么想法吗?
谢谢!
发布于 2020-07-22 11:09:11
在您的示例中尝试使用标志index=True,因为在应用groupby时,其他3列在索引中。
df = pd.DataFrame([('bird', 'Falconiformes', 389.0),
('bird', 'Psittaciformes', 24.0),
('mammal', 'Carnivora', 80.2),
('mammal', 'Primates', np.nan),
('mammal', 'Carnivora', 58)],
index=['falcon', 'parrot', 'lion', 'monkey', 'leopard'],
columns=('class', 'order', 'max_speed'))> df
class order max_speed
falcon bird Falconiformes 389.0
parrot bird Psittaciformes 24.0
lion mammal Carnivora 80.2
monkey mammal Primates NaN
leopard mammal Carnivora 58.0gp = df.groupby(['class', 'order','max_speed'])["class"].size().to_frame() class
class order max_speed
bird Falconiformes 389.0 1
Psittaciformes 24.0 1
mammal Carnivora 58.0 1
80.2 1# All columns are printed in html
gp.to_html('D:/sample.html', index=True)
# Only last column, which is not in index gets printed in HTML.
gp.to_html('D:/sample.html', index=False)编辑
I有以下错误: SyntaxError:(unicode错误)‘独角形转义’编解码器无法解码位置2-3的字节:截断\UXXXXXXXX转义
以上错误是一个decoding错误,因为您已经从一个具有不同编码的文件中导入了excel。若要解决此问题,请使用encoding标志传递正确的编码格式。
在你的情况下
gp.to_html('C:\Users\gregd\PycharmProjects\sample.html', index=True, encoding='utf-8')https://stackoverflow.com/questions/63031944
复制相似问题