将每个其他 csv 文件列从 python 列表转换为值
Converting every other csv file column from python list to value
我有几个大型 csv 文件,每个文件有 100 列和 800k 行。从第一列开始,每隔一列都有类似于 python 列表的单元格,例如:在单元格 A2 中,我有 [1000],在单元格 A3 中:我有 [2300],等等。第 2 列很好,是数字,但第 1、3、5、7 等列 ...99 与第 1 列相似,它们的值在列表中。有没有一种有效的方法可以从这些列中删除列表 [] 的符号并使它们的单元格像普通数字一样?
files_directory: r":D\my_files"
dir_files =os.listdir(r"D:\my_files")
for file in dir_files:
edited_csv = pd.read_csv("%s\%s"%(files_directory, file))
for column in list(edited_csv.columns):
if (column % 2) != 0:
edited_csv[column] = ?
读取单元格时,例如 column_1[3]
,在本例中为 [4554.8433]
,python 会将它们作为数组读取。要读取数组中的数值,只需像这样读取值:
value = column_1[3]
print(value[0]) #prints 4554.8433 instead of [4554.8433]
请尝试:
import pandas as pd
df = pd.read_csv('file.csv', header=None)
df.columns = df.iloc[0]
df = df[1:]
for x in df.columns[::2]:
df[x] = df[x].apply(lambda x: float(x[1:-1]))
print(df)
我有几个大型 csv 文件,每个文件有 100 列和 800k 行。从第一列开始,每隔一列都有类似于 python 列表的单元格,例如:在单元格 A2 中,我有 [1000],在单元格 A3 中:我有 [2300],等等。第 2 列很好,是数字,但第 1、3、5、7 等列 ...99 与第 1 列相似,它们的值在列表中。有没有一种有效的方法可以从这些列中删除列表 [] 的符号并使它们的单元格像普通数字一样?
files_directory: r":D\my_files"
dir_files =os.listdir(r"D:\my_files")
for file in dir_files:
edited_csv = pd.read_csv("%s\%s"%(files_directory, file))
for column in list(edited_csv.columns):
if (column % 2) != 0:
edited_csv[column] = ?
读取单元格时,例如 column_1[3]
,在本例中为 [4554.8433]
,python 会将它们作为数组读取。要读取数组中的数值,只需像这样读取值:
value = column_1[3]
print(value[0]) #prints 4554.8433 instead of [4554.8433]
请尝试:
import pandas as pd
df = pd.read_csv('file.csv', header=None)
df.columns = df.iloc[0]
df = df[1:]
for x in df.columns[::2]:
df[x] = df[x].apply(lambda x: float(x[1:-1]))
print(df)