我有一个具有不同数据类型的pandas数据框。我想将数据框中的多个列转换为字符串类型。我已经为每一栏单独完成了但是想知道是否有一种有效的方法?
所以目前我正在做这样的事情:
repair['SCENARIO']=repair['SCENARIO'].astype(str)
repair['SERVICE_TYPE']= repair['SERVICE_TYPE'].astype(str)
我想要一个可以帮助我传递多个列并将它们转换为字符串的函数。
答案 0 :(得分:8)
要将multiple列转换为字符串,请在上述命令中包含列列:
df[['one', 'two', 'three']] = df[['one', 'two', 'three']].astype(str)
# add as many column names as you like.
这意味着一种转换all列的方法是构建列表列表,如下所示:
all_columns = list(df) # Creates list of all column headers
df[all_columns] = df[all_columns].astype(str)
请注意,后者也可以直接完成(参见注释)。
答案 1 :(得分:1)
您还可以使用列表理解:
df = [df[col_name].astype(str) for col_name in df.columns]
您还可以插入条件以测试是否应转换列-例如:
df = [df[col_name].astype(str) for col_name in df.columns if 'to_str' in col_name]