Добавление значений к столбцу в цикле - PullRequest
0 голосов
/ 15 мая 2018

У меня есть различные файлы, содержащие данные. Я хочу извлечь один конкретный столбец из каждого файла и создать новый кадр данных с одним столбцом, содержащим все извлеченные данные.

Так, например, у меня есть 3 файла:

A B C
1 2 3 
4 5 6

A B C
7 8 9
8 7 6

A B C
5 4 3
2 1 0 

Новый кадр данных должен содержать только значения из столбца C:

C
3
6
9
6
3
0 

Таким образом, столбец первого файла должен быть скопирован в новый фрейм данных, столбец из второго файла должен быть добавлен к новому фрейму данных.

Пока мой код выглядит так:

import pandas as pd
import glob

for filename in glob.glob('*.dat'):

df= pd.read_csv(filename, delimiter="\t", header=6)
df1= df["Bias"]

print(df)

Теперь df1 перезаписывается на каждом шаге цикла. Будет ли хорошей идеей создать временный фрейм данных на каждом шаге цикла и затем скопировать данные в новый фрейм данных?

Любой вклад приветствуется!

1 Ответ

0 голосов
/ 15 мая 2018

Используйте list comprehension или for цикл с append для list of DataFrame с, и, если нужно, только несколько столбцов, добавьте параметр usecols, последний concat все вместе для большого DataFrame :

dfs = [pd.read_csv(f, delimiter="\t", header=6, usecols=['C']) for f in glob.glob('*.dat')]

Или:

dfs = []
for filename in glob.glob('*.dat'):
    df = pd.read_csv(filename, delimiter="\t", header=6, usecols=['C'])
    #if need all columns 
    #df = pd.read_csv(filename, delimiter="\t", header=6)
    dfs.append(df)

df = pd.concat(dfs, ignore_index=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...