我有一个带有名称(last_name,名称,年龄(的csv文件,我想将所有年龄属性转换为整数。这是一种方法,但我想还有一种更 pythonic 的方法可以做到这一点?我试图用列表理解来做到这一点,但它并没有像我想要的那样工作。
import csv
with open("names.csv") as names_file:
head , *names = csv.reader(names_file)
names = [line for line in names]
for i in range(len(names)):
names[i][2] = int(names[i][2])
提前谢谢。
处理此问题的最佳方法:
import pandas as pd
df = pd.read_csv('names.csv')
df["age"] = pd.to_numeric(df["age"])
如果你想要一个列表,只需这样做:
list_ = df['age'].to_list()
print(list_)
import csv
with open("names.csv") as names_file:
head, *names = csv.reader(names_file)
names = [[f, l, int(a)] for f, l, a in names]
我会这样做:
names = [['A', 'B', '20'], ['C', 'D', '30'], ['E', 'F', '40']] # sample data
for i in names:
i[2] = int(i[2])
print(names)
哪个比以下更简洁:
for i in range(len(names)):
names[i][2] = int(names[i][2])
如果你必须使用列表理解,那么你可以这样做:
names = [['A', 'B', '20'], ['C', 'D', '30'], ['E', 'F', '40']]
names = [[int(j) if inx==2 else j for inx, j in enumerate(i)] for i in names]
print(names)
输出:
[['A', 'B', 20], ['C', 'D', 30], ['E', 'F', 40]]
请注意,此工具嵌套,因此不如上述关于可读性的解决方案可取。