Как умножить два столбца с разными двумя CSV-файлами и вернуть результат в первый CSV-файл, используя Pandas - PullRequest
0 голосов
/ 05 июня 2018

У меня есть два CSV-файла, где первый CSV-файл содержит столбец Цена, а второй CSV-файл содержит количество, которое я пытался умножить на эти два столбца и сохранить результат в новых столбцах с первым CSV

First.csv

Code    Description                                Unit    Price
110101  STATIONARY BICYCLE INDOOR USE               SET    120.25
110106  TREADMILL EXERCISE MACHINE, ELEC. AC110V    SET    950.22
110107  TREADMILL EXERCISE MACHINE, ELEC. AC220V    SET    1000 
110110  EXERCISER ROWING INDOOR USE                 SET    450
110120  BARBELL SET                                 SET    100

Second.csv

Code     Quantity
110106  210
110107  220
110110  230
110120  240
110122  250

Ожидаемый результат:

First.csv

Code    Description                                 Unit   Price    Total
110101  STATIONARY BICYCLE INDOOR USE               SET    120.25   25252.5
110106  TREADMILL EXERCISE MACHINE, ELEC. AC110V    SET    150.22   33048.4
110107  TREADMILL EXERCISE MACHINE, ELEC. AC220V    SET    100      23000
110110  EXERCISER ROWING INDOOR USE                 SET    40       9600
110120  BARBELL SET                                 SET    100      25000

Я могу читать только файл

import pandas as pd

df = pd.read_csv("QuoteCSV.csv", parse_dates=True)
print(df)
df1=pd.read_csv("itemcode.csv",index_col="Price", parse_dates=True)
print(df1)

Обновлено:

   import pandas as pd

    a = pd.read_csv("itemcode.csv")
    b = pd.read_csv("QuoteCSV.csv")
    b = b.dropna(axis=1)
    merged = a.merge(b, on='Code')
    merged.to_csv("result.csv", index=False)
    c = pd.read_csv("result.csv")
    c['Total'] = c['Price'] * c['Quantity']

Но результат не возвращается

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Попробуйте эту работу

df["Total"]=df['Price'].multiply(df1['Quantity'], axis=0)
print(df)
0 голосов
/ 05 июня 2018

Использование map

First.assign(
    Total=First.Price * First.Code.map(dict(zip(Second.Code, Second.Quantity))))
...