我有以下数据框:
date country
6/1/18 USA
6/1/18 BEL
6/4/18 USA
6/5/18 BEL
6/6/18 USA
Run Code Online (Sandbox Code Playgroud)
我想创建一个列,告诉您相应国家/地区的下一个日期是什么。如果有帮助,您可以假设日期是有序的。如果该日期是该国家/地区的最后一个日期,您可以使用相同的日期或空值填写下一个日期。
date country next_date
6/1/18 USA 6/4/18
6/1/18 BEL 6/5/18
6/4/18 USA 6/6/18
6/5/18 BEL 6/5/18
6/6/18 USA 6/6/18
Run Code Online (Sandbox Code Playgroud) 我在与熊猫转置时遇到困难。
我有以下df:
date name quantity
1/1/2018 A 5
1/1/2018 B 6
1/1/2018 C 7
1/2/2018 A 9
1/2/2018 B 8
1/2/2018 C 6
Run Code Online (Sandbox Code Playgroud)
我最终希望为每个日期的所有名称及其数量创建成对关联。为此,我正在尝试首先从此df创建以下输出:
date A B C
1/1/2018 5 6 7
1/2/2018 9 8 6
Run Code Online (Sandbox Code Playgroud)
转置对我来说很难,因为我可以获得重复的列标题,但是我也不想通过先删除它们而丢失任何数据。我觉得答案可能是我没有真正使用的panda实用程序,我可能正在转置上进行隧道传输...
我有以下代码行:
# slice off the last 4 chars in name wherever its code contains the substring '-CUT'
df['name'] = np.where(df['code'].str.contains('-CUT'),
df['name'].str[:-4], df['name'])
Run Code Online (Sandbox Code Playgroud)
但是,这似乎无法正常工作。它将最后4个字符切成正确的列,但也将其用于代码为None / empty(几乎所有实例)的行。
我如何使用np.where明显有问题吗?
我正在编写一个检查excel文件的程序,如果今天的日期在excel文件的日期列中,我会解析它
我正在使用:
cur_date = datetime.today()
Run Code Online (Sandbox Code Playgroud)
为今天的约会.我正在检查今天是否在列中:
bool_val = cur_date in df['date'] #evaluates to false
Run Code Online (Sandbox Code Playgroud)
我确实知道今天的日期在相关文件中.该系列的dtype是datetime64 [ns]
此外,我只检查日期本身而不是之后的时间戳,如果这很重要的话.我这样做是为了使时间戳00:00:00:
cur_date = datetime.strptime(cur_date.strftime('%Y_%m_%d'), '%Y_%m_%d')
Run Code Online (Sandbox Code Playgroud)
打印后该对象的类型也是日期时间