我正在与 pandas 合作,想要创建一个为期一个月的自定义日期范围,其中一周从周日晚上 6 点开始,到周五下午 4 点结束。每天有 22 小时,例如周日下午 6 点到周一下午 4 点,周一下午 6 点到周二下午 4 点,等等。
我试过了day_range = pd.date_range(datetime(2016,9,12,18),datetime.now(),freq='H'),但总是在 24 小时内给我。
有什么建议么?
说我有一个清单t = list(i for i in np.arange(0.5,10.5,0.5)).我想找到的索引位置s=[3,5,7]内t.我知道我可以通过t.index(s)循环来做到这一点,但有更优雅的方式吗?
我有一个类似于的数据框
df = pd.DataFrame({'A': [1, np.nan,2,3, np.nan,4], 'B': [np.nan, 1,np.nan,2, 3, np.nan]})
df
A B
0 1.0 NaN
1 NaN 1.0
2 2.0 NaN
3 3.0 2.0
4 NaN 3.0
5 4.0 NaN
Run Code Online (Sandbox Code Playgroud)
如何计算A是np.nan但B不是np.nan,A不是np.nanB np.nan且A和B都不是的出现次数np.nan?
我试过了,df.groupby(['A', 'B']).count()但没有读到的行np.nan。
我有一个字符串元素列表,例如 user_contract = ['ZNZ6','TNZ6','ZBZ6']
我有一个具有嵌套列表结构的数据集,例如 data = [[1,2,3],[4,5,6],[7,8,9]]
我想按各自的顺序将每个user_contract字符串分配为每个data嵌套列表的变量名称。
我知道我可以通过键入手动执行此操作ZNZ6, TNZ6, ZBZ6 = data。我认为这不够灵活,每次更改user_contract.
有没有办法可以利用user_contract变量将数据分配给它的每个元素?
我有一个嵌套列表,如下所示:
x = [[1, 5, 3, 4],
[5, 10, 7, 8],
[9, 9, 2, 12]]
Run Code Online (Sandbox Code Playgroud)
我需要找到转置的嵌套列表的最小值和最大值,以便min的结果是:
1, 5, 2, 4 # 1 is the min of first column (1, 5, 9) a.s.o
Run Code Online (Sandbox Code Playgroud)
最大值应该是:
9, 10, 7, 12
Run Code Online (Sandbox Code Playgroud)
我尝试将它转换为dataframe第一个,然后在不同的轴上进行最大值和最小值,但所有都不会出现我想要的结果.
我有2个数据框,如下所示。
df_1
Index Fruit
1 Apple
2 Banana
3 Peach
df_2
Fruit Taste
Apple Tasty
Banana Tasty
Banana Rotten
Peach Rotten
Peach Tasty
Peach Tasty
Run Code Online (Sandbox Code Playgroud)
我想基于两个dataframes合并Fruit,但只保留第一次出现Apple,Banana以及Peach在第二数据帧。最终结果应为:
df_output
Index Fruit Taste
1 Apple Tasty
2 Banana Tasty
3 Peach Rotten
Run Code Online (Sandbox Code Playgroud)
其中Fruit,Index和Taste是列标题。我尝试了类似的方法,df1.merge(df2,how='left',on='Fruit但是它基于df_2
谢谢。
我有一个名为Price的数据集,它应该是数字,但是生成为字符串,因为所有5都被+替换.
它看起来像这样:
"99000" "98300" "98300" "98290" "98310" " 9831+ " "98310" " 9830+ " " 9830+ " " 9830+ " " 9829+ " " 9828+ " " 9827+ " "98270"
Run Code Online (Sandbox Code Playgroud)
我使用gsubR中的函数来尝试用5替换+.我写的代码是:
finalPrice<-gsub("+",5,Price)
Run Code Online (Sandbox Code Playgroud)
但是,输出只是一堆数字,对我的意图没有意义:
"59595050505,5 59585350505,5 59585350505,5 59585259505,5 59585351505,5 5 5 595853515+5 5,5 59585351505,5 5 5 595853505+5 5,5 5 5 595853505+5
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
我有这样的事情:
class updateMyNumber:
def __init__(self, number):
self.number = update_number(number)
def update_number(self, number):
self.number = number * 2
inst = updateMyNumber(5)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
NameErrorTraceback(最近一次调用最后一次) in () ----> 1 inst = updateMyNumber(5)
在init (self, number) 1 class updateMyNumber: 2 def init (self, number): ----> 3 self.number = update_number(number) 4 5 def update_number(self, number):
NameError:名称“update_number”未定义
我想要inst返回25。定义类的最佳方式是什么?
注意:我不想写 self.number = number * 2
我有一个时间列表,如下所示:
"0:30:00" "1:00:00" "1:30:00" "10:00:00" "10:30:00" "11:00:00" "11:30:00" "12:00:00" "12:30:00" "13:00:00" "13:30:00" "14:00:00" "14:30:00"
Run Code Online (Sandbox Code Playgroud)
当我使用as.Date函数使用以下代码将它们转换为R中的日期对象时:
time1<-as.Date(time,format='%H:%M:%S')
Run Code Online (Sandbox Code Playgroud)
它给了我以下输出:
"2016-05-09" "2016-05-09" "2016-05-09" "2016-05-09" "2016-05-09" "2016-05-09" "2016-05-09" "2016-05-09" "2016-05-09" "2016-05-09" "2016-05-09" "2016-05-09"
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我的代码或原始时间格式有问题吗?
谢谢.