我使用输入5个文本数据集到R中read.table.每个数据集具有相同的结构(100行,50列).我想联合\将所有五个表一起附加到一个表中,这将是500行*50列.谁知道怎么做?
这是当前的数据帧:
> ID Date current
> 2001980 10/30/2017 1
> 2001980 10/29/2017 0
> 2001980 10/28/2017 0
> 2001980 10/27/2017 40
> 2001980 10/26/2017 39
> 2001980 10/25/2017 0
> 2001980 10/24/2017 0
> 2001980 10/23/2017 60
> 2001980 10/22/2017 0
> 2001980 10/21/2017 0
> 2002222 10/21/2017 0
> 2002222 10/20/2017 0
> 2002222 10/19/2017 16
> 2002222 10/18/2017 0
> 2002222 10/17/2017 0
> 2002222 10/16/2017 20
> 2002222 10/15/2017 19
> 2002222 10/14/2017 18
Run Code Online (Sandbox Code Playgroud)
以下是最终的数据框架.专栏expected是我想要的. …
我有一个示例数据框显示如下.对于每一行,我想首先检查c1,如果它不为null,则检查c2.通过这种方式,找到第一个notnull列并将该值存储到列结果.
ID c1 c2 c3 c4 result
1 a b a
2 cc dd cc
3 ee ff ee
4 gg gg
Run Code Online (Sandbox Code Playgroud)
我现在正在使用这种方式.但我想知道是否有更好的方法.(列名没有任何模式,这只是样本)
df["result"] = np.where(df["c1"].notnull(), df["c1"], None)
df["result"] = np.where(df["result"].notnull(), df["result"], df["c2"])
df["result"] = np.where(df["result"].notnull(), df["result"], df["c3"])
df["result"] = np.where(df["result"].notnull(), df["result"], df["c4"])
df["result"] = np.where(df["result"].notnull(), df["result"], "unknown)
Run Code Online (Sandbox Code Playgroud)
当有很多列时,这种方法看起来不太好.
目前的df:
ID Date
11 3/19/2018
22 1/5/2018
33 2/12/2018
.. ..
Run Code Online (Sandbox Code Playgroud)
我有ID和日期的df.ID在原始df中是唯一的.我想基于日期创建一个新的df.每个ID都有一个最大日期,我想使用该日期并返回4天(每个ID 5行)有数千个ID.
期望获得:
ID Date
11 3/15/2018
11 3/16/2018
11 3/17/2018
11 3/18/2018
11 3/19/2018
22 1/1/2018
22 1/2/2018
22 1/3/2018
22 1/4/2018
22 1/5/2018
33 2/8/2018
33 2/9/2018
33 2/10/2018
33 2/11/2018
33 2/12/2018
… …
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法,我认为使用date_range可能是正确的方向,但我一直得到错误.
pd.date_range
def date_list(row):
list = pd.date_range(row["Date"], periods=5)
return list
df["Date_list"] = df.apply(date_list, axis = "columns")
Run Code Online (Sandbox Code Playgroud) 请设定下表。当我使用datediff(StartDate, SubmittedOn) 时,我只得到 int 类型的天数,这是不准确的。那么如何获得迟到的呢?谢谢。
StartDate SubmittedOn what I get using datediff what I am tring to get
9/7/2016 13:12 9/1/2016 0:00 6 6.550520833
9/1/2016 16:22 9/1/2016 0:00 0 0.682048611
9/9/2016 13:30 9/1/2016 0:00 8 8.562708333
9/9/2016 13:31 9/1/2016 0:00 8 8.563472222
9/9/2016 16:08 9/1/2016 0:00 8 8.672407407
9/2/2016 16:08 9/1/2016 0:00 1 1.672685185
9/2/2016 16:01 9/1/2016 0:00 1 1.667465278
Run Code Online (Sandbox Code Playgroud)