簡體   English   中英

Python:在CSV的列上執行功能並將該CSV附加

[英]Python: Performing a function on a column in a CSV and appending that CSV

我創建了一個函數,將文件名解析為其組成部分,包括相機信息和時間戳。 我想在CSV的一列上執行此功能(與我有關的唯一部分是時間戳,這就是我要返回的內容),該CSV的第一列中包含文件名。

    Exx, mean   filename
0   1.14E-33    cam0_006806_418.852.csv
1   4.54E-05    cam0_006807_418.910.csv
2   4.48E-05    cam0_006808_418.975.csv
3   0.000138274 cam0_006809_419.037.csv
4   0.000118886 cam0_006810_419.097.csv
5   0.001155703 cam0_006811_419.157.csv

我想將解析的時間添加到第四列。 這就是我到目前為止

def csvdecode(f):

    s = os.path.basename(f)
    pattern = "".join([r'cam(?P<cam_id>[0-9]+)_',
                    r'(?P<frame_id>[0-9]+)_'
                    r'(?P<time>[0-9]+.[0-9]+)'])
    m = re.search(pattern, s)
    d = {'Camera ID': m.group('cam_id'),
        'Frame ID': m.group('frame_id'),
        'Timestamp (s)': float(m.group('time'))}
    return d['Timestamp (s)']
    # this returns only the "time" portion of the timestamp

 df = pd.read_csv('results_avg_optical_strain.csv')
 df['Time (s)'] = df['filename'].apply(csvdecode)

並且它運行沒有錯誤,但是沒有任何內容添加到現有的csv中。 任何幫助表示贊賞,謝謝!

要使用熊貓將列添加到.csv,您要做的就是

df['column name'] = 'something'

這將自動更新您的.csv以包括該列。 它將填充值,使其長度與.csv中其他列的長度匹配

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM