【发布时间】:2021-10-07 22:01:05
【问题描述】:
我在 Python 中创建了这个函数来检查 DF 每一列的数据类型,并确保它成为它应该是的数据类型。
def dataType(df):
'''This function makes sure the data type for all 7 columns of the final dataframe are correct'''
#Day as date type
df["Day"] = pd.to_datetime(df["Day"])
df["Day"] = df["Day"].dt.strftime("%m/%d/%Y")
#Channel, Partner as string type
df[["Channel", "Partner"]] = df[["Channel", "Partner"]].astype(str)
#Spend, Clicks, Impressions, Platform Conversions as float type
df['Platform Conversions'] = df['Platform Conversions'].where(df['Platform Conversions'] == "null", 0)
df[["Spend", "Clicks", "Impressions", "Platform Conversions"]] = df[["Spend", "Clicks", "Impressions", "Platform Conversions"]].astype(float)
return df
我用这样的代码测试了每一列,但它们仍然输出说所有列都是对象类型。我做错了什么?
print(df["Day"].dtypes)
【问题讨论】:
-
也许您可以尝试从头开始构建一个新的 df,一次添加一个列(将按其相应的类型进行分类)。
-
@MarkLavin,是的,这实际上就是我最初所做的。我正在尝试这样做(创建一个定义),因为它会节省至少 200 行代码。那么有没有办法创建所需的功能?
标签: python pandas types user-defined-functions