gpt4 book ai didi

python - 在 Pandas DataFrame 中格式化 Float64Index

转载 作者:太空宇宙 更新时间:2023-11-03 14:03:37 25 4
gpt4 key购买 nike

我有以下代码通过合并到 dfs 创建 df,而 dfs 又按列“År”(挪威语年)(2011、2012、2013 等)分组

def create_output_from_subset(analysis_type):
unique_customers_subset = df.groupby('År')['Kundenavn'].nunique().to_frame()
analyses_count_subset = df.groupby('År')['Kundenavn'].count().to_frame()
output_subset = pd.merge(unique_customers_subset, analyses_count_subset, left_index = True, right_index = True)
return output_subset

被调用的函数返回以下内容:

        Customers  Analyses
År
2011.0 46 59
2012.0 80 156
2013.0 76 148
2014.0 69 108
2015.0 39 82
2016.0 42 90
2017.0 23 36

年份索引 (År) 的格式为 Float64Index,显示一位小数。有什么想法可以将其显示为 int(无小数)吗?

最佳答案

您可以使用 index.astype :

df.index = df.index.astype(int)

但是如果索引中的某些 NaN 值是不可能的。

需要用一些 int 替换它们然后转换:

df = pd.DataFrame({'a':[1,2,3]}, index=[2011,2012,np.nan])
print (df)
a
2011.0 1
2012.0 2
NaN 3

df.index = df.index.fillna(1970).astype(int)
print (df)
a
2011 1
2012 2
1970 3

或者先删除带有 NaN 的行:

df = df[df.index.notnull()]
df.index = df.index.astype(int)
print (df)
a
2011 1
2012 2

关于python - 在 Pandas DataFrame 中格式化 Float64Index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46158275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com