Я хотел бы захватить несколько значений ячеек из файла CSV и записать в новый столбец - PullRequest
0 голосов
/ 17 октября 2018

Итак, я новичок в Python.Я пытался применить полученные знания к реальным проблемам.Задача, которую я поставил перед собой, заключается в следующем:

Я хочу захватить значения двух ячеек '01/01/2018 и' 08/01/2018 'и распечатать их в новый файл csv.file поддаты заголовка.Я также хочу создать новый столбец, который показывает значение, связанное с этой датой в исходном файле CSV.

Буду признателен за любую помощь или указание в правильном направлении.

Исходный стол

Hierarchy   | Dept   | Emp | Alpha | Bravo | Charlie | 01/01/2018 | 08/01/2018|
Hierarchy 1 | Dept 1 | JC  | h     | o     | l       | 0          | 2         |

Новый стол

Hierarchy   |Dept   | Emp | Alpha | Bravo | Charlie    | Date       |Value |
Hierarchy 1 |Dept 1 | JC  | h     | o     | l          | 01/01/2018 | 0    |
Hierarchy 1 |Dept 1 | JC  | h     | o     | l          | 08/01/2018 | 2    |

Ответы [ 3 ]

0 голосов
/ 17 октября 2018

Хорошо, я просто собираюсь предположить, что ваша таблица хранится в CSV-файле.Итак, мы начнем с чтения этого в:

import pandas as pd

df = pd.read_csv('mytable.csv',sep='|')
pd.melt(df, 
       id_vars = ['Hierarchy   ', ' Dept   ', ' Emp ', ' Alpha ', ' Bravo ', ' Charlie '],
       value_vars=[' 01/01/2018 ',' 08/01/2018' ],
       var_name='Date', 
       value_name='Value')

Дает желаемый результат.

0 голосов
/ 22 октября 2018

После помощи участников я выполнил свою задачу, ниже приведен код, который я использовал!Спасибо сообществу за помощь!

"""
Transforms Data into Desired Format
"""

#import pandas module
import pandas as pd

#create variable where df = to data.csv
df = pd.read_csv('data.csv')

#create new variable for df.columns
cols = df.columns
#use .melt() function to complete data manipulation
transformed_df = pd.melt(df,
                         id_vars=cols[:6],
                         value_vars=cols[6:])

#Assert Data has been formatted correctly
print(transformed_df)

#create new csv file with new data
transformed_df.to_csv('melted_data.csv')

print("\nData has been Melted!") 
0 голосов
/ 17 октября 2018

Как упоминает @ChristianSloper в своем комментарии, pd.melt предназначен для этого.В вашем случае вот одна строка:

df
     Hierarchy    Dept Emp Alpha Bravo Charlie  01/01/2018  08/01/2018
0  Hierarchy_1  Dept_1  JC     h     o       l           0           2

pd.melt(df, 
        id_vars=df.columns[:-2], 
        value_vars=df.columns[-2:],
        var_name='Date', 
        value_name='Value')
     Hierarchy    Dept Emp Alpha Bravo Charlie        Date  Value
0  Hierarchy_1  Dept_1  JC     h     o       l  01/01/2018      0
1  Hierarchy_1  Dept_1  JC     h     o       l  08/01/2018      2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...