Как умножить много столбцов в папке в пандах? - PullRequest
0 голосов
/ 07 октября 2019

У меня есть папка CSV со многими файлами. Каждый CSV-файл выглядит следующим образом. Я хотел бы взять каждый столбец в CSV-файле в папке, которая будет умножена в 2 раза?

*** csv 1

   Name   Sales
   0 Sam    250
   0 Steve  500
   0 Ann    600




csv 2***


 Name   Sales
 0 Sam    250
 0 Steve  300
 0 Ann    400 

Хотите иметь это

csv 1

   Name   Sales
   0 Sam    500
   0 Steve  1000
   0 Ann    1200

csv 2***


 Name   Sales
 0 Sam    500
 0 Steve  600
 0 Ann    800 

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

это будет полезно!

basepath="<folder path>"
files = list(filter(lambda x: '.csv' in x, os.listdir(basepath)))
for file in files:
    df = pd.read_csv(f"{basepath}/{file}")
    df_ = df.drop(["Name"])
    cols = df_.columns
    df_[cols] =df_[cols].apply(pd.to_numeric, errors='coerce')
    df_ = df_.multiply(2)
    dfnew = pd.concat(df[df["Name"]],df_,axis=1)
    dfnew.to_csv(f"{file}_n.csv")
0 голосов
/ 07 октября 2019

Это то, что вы ищете?

df_paths = ['file1.csv', 'file2.csv'] 
df_lst = [pd.read_csv(_) for _ in df_paths]

for df in df_lst:
    df['Sales']*=2  

Обратите внимание, что строка df['Sales']*=2 влияет на исходные кадры данных, а не на их копии. Они должны обновляться в каждом фрейме данных df_lst.

...