Hướng dẫn add filename as new column in multiple csv files python - thêm tên tệp dưới dạng cột mới trong nhiều tệp csv python

Tôi có một số tệp CSV trong một thư mục duy nhất và tôi muốn mở tất cả chúng trong một DataFrame và chèn một cột mới với tên tệp được liên kết. Cho đến nay tôi đã mã hóa như sau:

import pandas as pd
import glob, os
df = pd.concat(map(pd.read_csv, glob.glob(os.path.join('path/*.csv'))))
df['filename']= os.path.basename(csv)
df

Điều này mang lại cho tôi khung dữ liệu mà tôi muốn nhưng trong cột mới 'Tên tệp', nó chỉ liệt kê tên tệp cuối cùng trong thư mục cho mỗi hàng. Tôi đang tìm kiếm từng hàng để được điền với tệp CSV được liên kết. Không chỉ là tập tin cuối cùng trong thư mục.

Bất kỳ hỗ trợ cho người mới này được đánh giá cao.

Hướng dẫn add filename as new column in multiple csv files python - thêm tên tệp dưới dạng cột mới trong nhiều tệp csv python

Achampion

28.9K3 Huy hiệu vàng58 Huy hiệu bạc71 Huy hiệu đồng3 gold badges58 silver badges71 bronze badges

Đã hỏi ngày 13 tháng 3 năm 2017 lúc 4:34Mar 13, 2017 at 4:34

1

Tôi nghĩ rằng bạn cần assign để thêm cột mới vào loop, cũng có tham số ignore_index=True đã được thêm vào concat để loại bỏ các bản sao trong index:

Các tệp để kiểm tra là A.CSV, B.CSV, C.CSV.

import pandas as pd
import glob, os


files = glob.glob('samples_for_so/*.csv')
print (files)
#['samples_for_so\\a.csv', 'samples_for_so\\b.csv', 'samples_for_so\\c.csv']


df = pd.concat([pd.read_csv(fp).assign(New=os.path.basename(fp)) for fp in files])
print (df)
   a  b  c  d    New
0  0  1  2  5  a.csv
1  1  5  8  3  a.csv
0  0  9  6  5  b.csv
1  1  6  4  2  b.csv
0  0  7  1  7  c.csv
1  1  3  2  6  c.csv

files = glob.glob('samples_for_so/*.csv')
df = pd.concat([pd.read_csv(fp).assign(New=os.path.basename(fp).split('.')[0]) 
       for fp in files])
print (df)
   a  b  c  d New
0  0  1  2  5   a
1  1  5  8  3   a
2  0  9  6  5   b
3  1  6  4  2   b
4  0  7  1  7   c
5  1  3  2  6   c

Đã trả lời ngày 13 tháng 3 năm 2017 lúc 6:57Mar 13, 2017 at 6:57

Hướng dẫn add filename as new column in multiple csv files python - thêm tên tệp dưới dạng cột mới trong nhiều tệp csv python

JEZRAELJEZRAELjezrael

771K86 Huy hiệu vàng1235 Huy hiệu bạc1169 Huy hiệu đồng86 gold badges1235 silver badges1169 bronze badges

2

Thứ nhất, bạn không có biến CSV được xác định.

Nhưng dù sao, hành vi này có ý nghĩa, bởi vì bạn đang sử dụng CSV ở cuối để nó sẽ được đặt thành tệp cuối cùng. Lý tưởng nhất, bạn có thể sử dụng lại Glob để lấy tất cả các tên tệp, sau đó đặt nó thành một cột mới.

#this is a Python list containing filenames
csvs = glob.glob(os.path.join('path/*.csv'))

#now set the csv into a pd series
csv_paths = pd.Series(csvs)

df['file_name'] = csv_paths.values

Đã trả lời ngày 13 tháng 3 năm 2017 lúc 5:04Mar 13, 2017 at 5:04

Abid Hasanabid HasanAbid Hasan

6294 Huy hiệu bạc10 Huy hiệu đồng4 silver badges10 bronze badges

1

Tôi có hơn 150 tệp .csv mà tôi đang làm việc và tôi muốn tải tên tệp của mỗi tệp dưới dạng cột mới trong mỗi CSV để xác định dữ liệu. Tất cả các tệp có cùng một số cột và tất cả đều có hàng tiêu đề. Bất kỳ ý tưởng về cách làm điều này sẽ được đánh giá cao. Tôi đã tìm kiếm các bảng và không thể tìm thấy bất cứ điều gì. Tôi là ngôn ngữ bất khả tri để hoàn thành công việc này. Cảm ơn!

Đọc những điều này tiếp theo ...

  • Hướng dẫn add filename as new column in multiple csv files python - thêm tên tệp dưới dạng cột mới trong nhiều tệp csv python

    Snap! -Hội chứng Imposter, Sun Serpents, Snoopy, Vương quốc Anh không gian, T-Rex lớn hơn 70%

    Spiceworks Originals

    Liều lượng công nghệ hàng ngày của bạn, ngắn gọn. Chào mừng bạn đến với snap! Flashback: Trở lại vào ngày 18 tháng 11 năm 1970, Bill Gates bắt đầu lập trình (Đọc thêm tại đây.) Phần thưởng hồi tưởng: Quay lại vào ngày 18 tháng 11 năm 1963, điện thoại nhấn nút lần đầu tiên được sử dụng (Rea ...

  • Hướng dẫn add filename as new column in multiple csv files python - thêm tên tệp dưới dạng cột mới trong nhiều tệp csv python

    Hiển thị máy tính lên nhiều màn hình

    Phần cứng

    Có ai gặp may mắn khi gửi màn hình máy tính trên 200 ft cho nhiều màn hình TV không? Và sau đó là một hdmi s ...

  • Hướng dẫn add filename as new column in multiple csv files python - thêm tên tệp dưới dạng cột mới trong nhiều tệp csv python

    Spark! Sê -ri Pro - 18 tháng 11 năm 2022

    Spiceworks Originals

    Liều lượng công nghệ hàng ngày của bạn, ngắn gọn. Chào mừng bạn đến với snap! Flashback: Trở lại vào ngày 18 tháng 11 năm 1970, Bill Gates bắt đầu lập trình (Đọc thêm tại đây.) Phần thưởng hồi tưởng: Quay lại vào ngày 18 tháng 11 năm 1963, điện thoại nhấn nút lần đầu tiên được sử dụng (Rea ...

  • Hướng dẫn add filename as new column in multiple csv files python - thêm tên tệp dưới dạng cột mới trong nhiều tệp csv python

    Lưu trữ tài khoản thư cho các Leavers - Bạn làm như thế nào?

    Điện toán đám mây & SaaS

    Một chút quan điểm. Tôi đã tham gia một công ty có hơn 2,5k tài khoản người dùng bị vô hiệu hóa trong Active Directory. Khi người dùng rời đi, tài khoản người dùng của họ bị vô hiệu hóa trong AD và hộp thư Office365 của họ được chuyển đổi thành hộp thư được chia sẻ để giải phóng giấy phép. Các...

  • Hướng dẫn add filename as new column in multiple csv files python - thêm tên tệp dưới dạng cột mới trong nhiều tệp csv python

    Các giải pháp ransomware để ngăn chặn mã hóa

    Bảo vệ

    Tôi đang tìm kiếm một số tiêu đề của đồng nghiệp để đưa ra các khuyến nghị về việc ngăn chặn hoàn toàn mã hóa dữ liệu trên máy chủ và có thể một số thiết bị cuối cùng cho quản lý cấp trên. Tôi đang tìm kiếm thứ gì đó không phân tích hoặc nghĩ rằng, chỉ ngăn chặn mã hóa trên ...