将带冒号分隔项的Python列表转换为Pandas DataFrame
将冒号分隔列表转换为指定列名的DataFrame
当然可以!这里有几种简单高效的方法帮你把这个冒号分隔的列表转换成带有Name、Age、Occupation列名的DataFrame:
方法一:手动拆分列表后构造DataFrame
这种方法先将原始列表的每个元素按冒号分割,再直接传入pd.DataFrame并指定列名,逻辑清晰易懂:
import pandas as pd x = ['john:42:engineer', 'michael:29:doctor'] # 遍历列表,将每个字符串按冒号拆分为子列表 split_items = [item.split(':') for item in x] # 构造DataFrame并设置列名 df = pd.DataFrame(split_items, columns=['Name', 'Age', 'Occupation']) print(df)
运行后输出就是你想要的格式:
Name Age Occupation 0 john 42 engineer 1 michael 29 doctor
方法二:利用Pandas字符串拆分功能(更简洁)
Pandas的str.split方法可以直接对Series进行拆分,expand=True参数会将拆分后的结果展开为多列,非常方便:
import pandas as pd x = ['john:42:engineer', 'michael:29:doctor'] # 将列表转为Series,按冒号拆分并展开为列 df = pd.Series(x).str.split(':', expand=True) # 重命名列名 df.columns = ['Name', 'Age', 'Occupation'] print(df)
额外优化:将Age转为数值类型
上面两种方法得到的Age列是字符串类型,如果需要将其转为整数类型,可以添加一行代码:
df['Age'] = df['Age'].astype(int)
这样Age列就会变成数值型,方便后续的数值计算。
内容的提问来源于stack exchange,提问作者itthrill
相关产品推荐
相关产品推荐

