我有一个数据框
df = pd.DataFrame([
['2', '3', 'nan'],
['0', '1', '4'],
['5', 'nan', '7']
])
print df
0 1 2
0 2 3 nan
1 0 1 4
2 5 nan 7
我想将这些字符串转换为数字并对列求和,然后再转换回字符串。
使用astype(float)
似乎可以将字符串转换为数字。然后使用sum()
很容易实现求和。最后使用astype(str)
也应该很容易将结果转换回字符串。
df.astype(float).sum().astype(str)
0 7.0
1 4.0
2 11.0
dtype: object
这几乎是我想要的。我需要整数的字符串版本。但浮点数有小数位。如何去掉它们?
我想要这个。
0 7
1 4
2 11
dtype: object
astype('Int64').astype('str')
可以用于转换单个列。由于这是真正的数据类型重格式化,我更喜欢这种方法而不是更改显示选项。 - Culdesac