在pandas数据帧中将多个列转换为字符串

时间:2018-06-13 22:49:12

标签: python python-2.7 pandas

我有一个具有不同数据类型的pandas数据框。我想将数据框中的多个列转换为字符串类型。我已经为每一栏单独完成了但是想知道是否有一种有效的方法?

所以目前我正在做这样的事情:

repair['SCENARIO']=repair['SCENARIO'].astype(str)

repair['SERVICE_TYPE']= repair['SERVICE_TYPE'].astype(str)

我想要一个可以帮助我传递多个列并将它们转换为字符串的函数。

2 个答案:

答案 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]