将修改后的列写回同一文件

时间:2018-10-02 12:58:48

标签: python python-3.x pandas csv export-to-csv

我正在编写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],因为它是文件的第二列。

不起作用。请帮助。谢谢。

1 个答案:

答案 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时,所有列均按照在文件中看到的顺序读入数据帧,因此您不必担心丢失数据。