Сохранение кадра данных с разделенным столбцом в R

#r #csv

Вопрос:

Я пытаюсь разделить столбец, содержащий метку времени даты и времени, на 2 столбца. Однако у меня есть проблемы с его сохранением. В этом случае фрейм данных «four_rows» печатается в консоли, но не сохраняется как таковой. Я изо всех сил пытаюсь понять, как сохранить его в виде фрейма данных.

 mydata <-read.csv("/Users/me/Some_Folder/big_csv_file.csv")
four_rows <- mydata[1:4,]

four_rows %>% separate(Datetime, c('Date', 'Time'), sep=" ")
 

Комментарии:

1. Вы должны назначить выход из separate новому объекту или four_rows (если то же имя, заменит исходный объект). Подобный этому: four_rows <- four_rows %>% separate(Datetime, c('Date', 'Time'), sep=" ")

2. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Если нам нужно автоматически обновить исходный объект, используйте составной оператор magrittr ( %<>% )

 library(magrittr)
four_rows %<>%
    separate(Datetime, c('Date', 'Time'), sep=" ")
 

Теперь мы проверяем

 four_rows
 

Ответ №2:

Перейдите, чтобы загрузить 2 csv-файла с 2 разных URL-адресов в таблицу dynamodb. Я использую pandas, чтобы получить нужные данные из URL-адреса и объединить 2 кадра данных в df3. Я сталкиваюсь с проблемой, когда использую put_item для обновления базы данных. Я пытался преобразовать серию панд в строки, но это, похоже, тоже не работает. Вот лямбда-функция:

 import csv
import pandas as pd
import io
import requests
import numpy as np
import boto3
from datetime import datetime
import json
from decimal import Decimal

def lambda_handler(event, context): 
    
    url1 = "https://raw.githubusercontent.com/nytimes/covid-19-data/master/us.csv"
    url2 = "https://raw.githubusercontent.com/datasets/covid-19/master/data/time-series-19-covid-combined.csv"
    
    df1 = pd.read_csv(url1)
    df1 = pd.DataFrame(df1)
    df1 = df1.drop(0)

    df2 = pd.read_csv(url2, delimiter=',')
    df2 = pd.DataFrame(df2)
    df2['Recovered'] = df2['Recovered'].fillna(0).astype(np.int64)
    df2 = df2.loc[df2['Country/Region'] == 'US', 'Recovered']
    df2 = df2.reset_index(drop=True)
    df2.index = np.arange(1, len(df2)   1)
    
    df3 = df1.join(df2)
    region = 'eu-west-2'
    
    try:
        dyndb = boto3.client('dynamodb', region_name=region)
        firstrecord = True
        for row in df1:
            if firstrecord:
                firstrecord = False
                continue
            cases = df3['cases']
            date = df3['date']
            deaths = df3['deaths']
            Recovered = df3['Recovered']
        response = dyndb.put_item(TableName='covidstatstable',
                Item={
                'cases': {'N': cases},
                'date': {'S': date},
                'deaths': {'N': deaths},
                'Recovered': {'N': Recovered},
                })

        print('Put succeeded:')
    except Exception as e:
        print(str(e))
 

а вот журналы функций: