【问题标题】:Saving dataframe with separated column in R在R中保存带有分隔列的数据框
【发布时间】:2021-11-17 23:30:48
【问题描述】:

我正在尝试将包含日期和时间的时间戳的列分成 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=" ")

【问题讨论】:

  • 您必须将来自separate 的输出分配给新对象或four_rows(如果名称相同,将替换原始对象)。像这样:four_rows &lt;- four_rows %&gt;% separate(Datetime, c('Date', 'Time'), sep=" ")
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: r csv


【解决方案1】:

如果我们需要自动更新原始对象,请使用 magrittr 复合运算符 (%&lt;&gt;%)

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

现在,我们检查

four_rows

【讨论】:

    【解决方案2】:

    从 2 个不同的 url 上传 2 个 csv 文件到 dynamodb 表。我正在使用 pandas 从 url 中获取所需的数据,并将 2 个数据帧合并到 df3 中。当我使用 put_item 更新数据库时遇到了问题。我曾尝试将熊猫系列转换为字符串,但这似乎也不起作用。这是 lambda 函数:

    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))
    

    这里是函数日志:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-19
      • 2018-02-20
      • 2017-01-03
      • 1970-01-01
      • 2021-03-29
      • 1970-01-01
      相关资源
      最近更新 更多