我正在尝试从多个列年,月和日创建一个日期列,但是我使用标准过程创建日期列时会出现一些错误.
import pandas as pd
from urllib.request import urlopen
url = "https://www.ndbc.noaa.gov/view_text_file.php?filename=42887h2017.txt.gz&dir=data/historical/stdmet/"
data_csv = urlopen(url)
df = pd.read_csv(data_csv, delim_whitespace=True, index_col=0, parse_dates=True)
#Reset Index
df.reset_index(level=0, inplace=True)
#remove 1st row contains erronous characters
df = df.iloc[1:]
#Rename Year column
df = df.rename(columns={'#YY': 'YY'})
df['Date'] = pd.to_datetime((df.YY*10000+df.MM*100+df.DD).apply(str),format='%Y%m%d')
Run Code Online (Sandbox Code Playgroud)
最后一个命令无法正常工作,因为没有创建日期列.结果:
ValueError:未转换数据依然存在:420142014201420142014201420142014201420142014201420142014201420142014201420142014201420142014201420142014201420142014201420142014201420142014201420142014201420202020202014201
我在 PySpark 数据框中有一个Date
和一个列。Hour
如何将它们合并在一起以获得Desired_Calculated_Result
列?
df1 = sqlContext.createDataFrame(
[
('2021-10-20','1300', '2021-10-20 13:00:00.000+0000')
,('2021-10-20','1400', '2021-10-20 14:00:00.000+0000')
,('2021-10-20','1500', '2021-10-20 15:00:00.000+0000')
]
,['Date', 'Hour', 'Desired_Calculated_Result']
)
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
df1.withColumn("TimeStamp", unix_timestamp(concat_ws(" ", df1.Date, df1.Hour), "yyyy-MM-dd HHmm").cast("timestamp")).show().
Run Code Online (Sandbox Code Playgroud)
这返回了时间戳列中的所有空值
我有一个相当大的数据框,其中有多个“-”代表丢失的数据。数据框由多个 Excel 文件组成,无法使用“na.strings =”或替代函数,因此我必须使用“-”表示导入它们。
如何用 NA / 缺失值替换数据框中的所有“-”?数据框由 200 列字符、因子和整数组成。
到目前为止,我已经尝试过:
sum(df %in c("-"))
returns: [1] 0
df[df=="-"] <-NA #does not do anything
library(plyr)
df <- revalue(df, c("-",NA))
returns: Error in revalue(tmp, c("-", NA)) :
x is not a factor or a character vector.
library(anchors)
df <- replace.value(df,colnames(df),"-",as.character(NA))
Error in charToDate(x) :
character string is not in a standard unambiguous format
Run Code Online (Sandbox Code Playgroud)
数据框由 200 列字符、因子和整数组成,所以我可以理解为什么最后两个不能正常工作。任何帮助,将不胜感激。
我有数十万行,其中大多数都缺少值(第2列).基于主键(第1列),我可以假设可以使用与该键相关联的值来估算缺失值.一个例子是必要的.
Primary Key Date Date.Impute
123 ""
123 ""
123 02/02/2017
1234 ""
1234 02/03/2017
1234 ""
12345 01/01/2017
12345 ""
Run Code Online (Sandbox Code Playgroud)
所有订单"123"的日期均为"02/02/2017".所有订单"1234"日期为"02/03/2017"等.
在R中使用或不使用索引匹配功能,如何填写第3列中第2列的所有缺失字段?最终结果如下:
Primary Key Date Date.Impute
123 "" 02/02/2017
123 "" 02/02/2017
123 02/02/2017 02/02/2017
1234 "" 02/03/2017
1234 02/03/2017 02/03/2017
1234 "" 02/03/2017
12345 01/01/2017 01/01/2017
12345 "" 01/01/2017
Run Code Online (Sandbox Code Playgroud)
我知道如何在Excel中执行此操作并很乐意分享它,但想了解如何在R中执行此操作.任何帮助将不胜感激.谢谢.