我正在尝试从熊猫系列中删除小数。目前这是一只熊猫花车。我将其转换为字符串。然后,我想删除小数点,以便可以使用此列合并其他数据集。这是代码的原始输出。我正在尝试更改“人口普查区号”列。
State County Census Tract Number Life Expectancy
4737 California Los Angeles County, CA 1011.10 79.2
4738 California Los Angeles County, CA 1011.22 80.0
4739 California Los Angeles County, CA 1012.10 82.5
4740 California Los Angeles County, CA 1012.20 78.5
4741 California Los Angeles County, CA 1013.00 80.0
以下代码数据类型本来是浮点数,我将其转换为字符串:
df202['Census Tract Number'] = df202['Census Tract Number'].astype(str)
我遇到以下错误,但能够继续:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
这是数据框的变形形式:
4737 California Los Angeles County, CA 1011.1 79.2
4738 California Los Angeles County, CA 1011.22 80.0
4739 California Los Angeles County, CA 1012.1 82.5
4740 California Los Angeles County, CA 1012.2 78.5
4741 California Los Angeles County, CA 1013.0 80.0
我不希望它在结尾处切零,但我继续尝试删除小数点:
df202['Census Tract Number'] = df202['Census Tract Number'].replace('.', '')
小数点不会删除。
请帮助!
答案 0 :(得分:0)
您可以使用一个小的正则表达式来提取普查区编号:
df['Census Tract Number'] = df['Census Tract Number'].astype(str).str.extract('([0-9]{4})')
仅替换圆点:
df['Census Tract Number'] = df['Census Tract Number'].astype(str).str.replace('.', '')
答案 1 :(得分:0)
您可以简单地这样做:
df202['Census Tract Number'] = df202['Census Tract Number'].apply(lambda x : round(x))
print(df.head())
#State County Census Tract Number Life Expectancy
#4737 California Los Angeles County, CA 1011 79.2
#4738 California Los Angeles County, CA 1011.22 80.0
#4739 California Los Angeles County, CA 1012 82.5
#4740 California Los Angeles County, CA 1012 78.5
#4741 California Los Angeles County, CA 1013 80.0