Python:将 dataframe 转换为列表中包含字符串项的列表

Python: Convert dataframe into a list with string items inside list

提问人:PineNuts0 提问时间:1/21/2017 最后编辑:EdChumPineNuts0 更新时间:3/31/2023 访问量:51300

问:

我目前有在 Excel 表格中读取的代码(下图):

# Read in zipcode input file

us_zips = pd.read_excel("Zipcode.xls")
us_zips

enter image description here

我使用以下代码将数据帧邮政编码转换为列表:

us_zips = list(us_zips.values.flatten())

当我打印us_zips时,它看起来像这样:

[10601, 60047, 50301, 10606]

...但我希望它看起来像这样 [“10601”、“60047”、“50301”、“10606”]

我该怎么做?*任何帮助将不胜感激

Python Pandas 数据帧

评论


答:

28赞 EdChum 1/21/2017 #1

你可以使用 astype(str) 强制转换列 dtype,然后使用 转换为列表,这将返回一个使用 .values 的 numpy 数组,该数组有一个成员函数可以将其转换为列表:.values.tolist()

In [321]:
us_zips['zipcode'].astype(str).values.tolist()

Out[321]:
['10601', '60047', '50301', '10606']
10赞 Tom Hale 7/23/2019 #2

它对我有用,没有:.values()

list = df[col_name].astype(str).tolist()
0赞 Anna Christiane Kolandjian 3/31/2023 #3

创建列表后,只需执行以下操作即可将所有列表元素转换为字符串:

us_zips = [str(i) for i in us_zips]

完整代码:

df = pd.DataFrame()
df["x"] = [10601, 60047, 50301, 10606]
us_zips = list(df["x"].values.flatten())
print(us_zips)
us_zips = [str(i) for i in us_zips]
print(us_zips)

结果:

[10601, 60047, 50301, 10606]
['10601', '60047', '50301', '10606']