我正在编写python代码以读取csv文件,然后修改选定的列。现在,我想在同一位置写回该列。到目前为止,我的代码是
import pandas as pd
df = pd.read_csv('out.csv')
x = df['User Time']
def func(x):
if (518400 < x) and (x < 604800):
return x - 518400
elif (432000 < x) and (x < 518400):
return x - 432000
elif (345600 < x) and (x < 432000):
return x - 345600
elif (259200 < x) and (x < 345600):
return x - 259200
elif (172800 < x) and (x < 259200):
return x - 172800
elif (86400 < x) and (x < 172800):
return x - 86400
else:
return x
x = x.apply(func)
df.to_csv('out.csv')[:2]
使用[:2],因为它是文件的第二列。
不起作用。请帮助。谢谢。
答案 0 :(得分:0)
不要使用分配/不必要的副本。在这里,您只需在数据框中修改一系列数据,然后导出整个数据框即可:
df = pd.read_csv('out.csv')
def func(x):
# your function logic
df['User Time'] = df['User Time'].apply(func)
df.to_csv('out.csv')
使用Pandas不能“仅更新单个列”。该框架是构建的,具有有意义的行和列。使用pd.read_csv
时,所有列均按照在文件中看到的顺序读入数据帧,因此您不必担心丢失数据。