在pandas dataframe中将字符串类型的列转换为列表类型可以通过使用apply函数和eval函数来实现。
首先,我们可以使用apply函数来对DataFrame中的每一行进行操作。我们可以定义一个函数,将每个字符串转换为列表,并应用到字符串类型的列上。
以下是一个示例代码:
import pandas as pd
# 创建一个示例DataFrame
data = {'col1': ['a,b,c', 'd,e,f', 'g,h,i']}
df = pd.DataFrame(data)
# 定义一个函数,将字符串转换为列表
def convert_to_list(string):
return string.split(',')
# 使用apply函数将字符串类型的列转换为列表类型
df['col1'] = df['col1'].apply(convert_to_list)
print(df)
运行上述代码,输出结果如下:
col1
0 [a, b, c]
1 [d, e, f]
2 [g, h, i]
此时,我们已经将字符串类型的列转换为列表类型。
另外,如果DataFrame的某一列中的字符串是有效的Python表达式,我们还可以使用eval函数来实现转换。eval函数会将字符串作为Python代码进行求值,并返回结果。
以下是一个使用eval函数的示例代码:
import pandas as pd
# 创建一个示例DataFrame
data = {'col1': ['[1, 2, 3]', '[4, 5, 6]', '[7, 8, 9]']}
df = pd.DataFrame(data)
# 使用eval函数将字符串类型的列转换为列表类型
df['col1'] = df['col1'].apply(eval)
print(df)
运行上述代码,输出结果如下:
col1
0 [1, 2, 3]
1 [4, 5, 6]
2 [7, 8, 9]
这里假设字符串类型的列中的每个元素都是一个有效的Python列表表达式。eval函数会将字符串转换为相应的Python列表。
总结:通过使用apply函数和eval函数,我们可以在pandas dataframe中将字符串类型的列转换为列表类型。使用apply函数适用于任何字符串类型的列,而使用eval函数适用于字符串是有效的Python表达式的列。
领取专属 10元无门槛券
手把手带您无忧上云