我想diff按小组计算.我不知道如何对time列进行排序,以便每个组的结果都是排序的和正面的.
原始数据:
In [37]: df
Out[37]:
id time
0 A 2016-11-25 16:32:17
1 A 2016-11-25 16:36:04
2 A 2016-11-25 16:35:29
3 B 2016-11-25 16:35:24
4 B 2016-11-25 16:35:46
Run Code Online (Sandbox Code Playgroud)
我想要的结果
Out[40]:
id time
0 A 00:35
1 A 03:12
2 B 00:22
Run Code Online (Sandbox Code Playgroud)
注意:时间col的类型是timedelta64 [ns]
In [38]: df['time'].diff(1)
Out[38]:
0 NaT
1 00:03:47
2 -1 days +23:59:25
3 -1 days +23:59:55
4 00:00:22
Name: time, dtype: timedelta64[ns]
Run Code Online (Sandbox Code Playgroud)
没有得到理想的结果.
不仅解决问题,而且代码可以快速运行,因为有5000万行.
有这么多的帖子这样有关如何提取sklearn决策树的规则,但我找不到任何有关使用熊猫。
以这个数据和模型为例,如下
# Create Decision Tree classifer object
clf = DecisionTreeClassifier(criterion="entropy", max_depth=3)
# Train Decision Tree Classifer
clf = clf.fit(X_train,y_train)
Run Code Online (Sandbox Code Playgroud)
结果:
预期:
关于此示例,有8条规则。
从左到右,请注意该数据帧是 df
r1 = (df['glucose']<=127.5) & (df['bmi']<=26.45) & (df['bmi']<=9.1)
……
r8 = (df['glucose']>127.5) & (df['bmi']>28.15) & (df['glucose']>158.5)
Run Code Online (Sandbox Code Playgroud)
我不是提取sklearn决策树规则的大师。获取大熊猫布尔条件将有助于我为每个规则计算样本和其他指标。因此,我想将每个规则提取到熊猫的布尔条件。
df = pd.DataFrame({'A': ['x', 'y', 'x'], 'B': ['z', 'u', 'z'],
'C': ['1', '2', '3'],
'D':['j', 'l', 'j']})
Run Code Online (Sandbox Code Playgroud)
我只是希望A列和D列不是B pd.get_dummies(df)列的假人.如果我使用了,所有列都变成了假人.
我希望最终结果包含所有列,这意味着列C和列B退出,如'A_x','A_y','B','C','D_j','D_l'.
输入:
S T W U
0 A A 1 Undirected
1 A B 0 Undirected
2 A C 1 Undirected
3 B A 0 Undirected
4 B B 1 Undirected
5 B C 1 Undirected
6 C A 1 Undirected
7 C B 1 Undirected
8 C C 1 Undirected
Run Code Online (Sandbox Code Playgroud)
输出:
S T W U
1 A B 0 Undirected
2 A C 1 Undirected
3 B A 0 Undirected
5 B C 1 Undirected
6 C A 1 Undirected …Run Code Online (Sandbox Code Playgroud) 原始数据:orginal_table
MID STATE CALL_TIME RECORD_RANK
a 1 2020-12-18 09:00:00 1
a 2 2020-12-19 09:00:00 2
b 1 2020-12-18 09:00:02 1
c 1 2020-12-18 09:00:03 1
c 1 2020-12-19 09:00:03 2
c 1 2020-12-20 09:00:03 3
d 1 2020-12-19 09:00:00 1
Run Code Online (Sandbox Code Playgroud)
我想插入的数据:insert_table
MID STATE CALL_TIME
a 2 2020-12-30 09:00:00
b 2 2020-12-19 09:00:02
c 1 2020-12-21 09:00:03
e 1 2020-12-30 09:00:00
f 1 2020-12-30 09:00:00
f 2 2020-12-31 09:00:00
Run Code Online (Sandbox Code Playgroud)
目标
MID and CALL_TIME是唯一的。RECORD_RANK插入的数据中没有列,但RECORD_RANK会根据MID …输入
df=pd.DataFrame({'Name':['JOHN','ALLEN','BOB','NIKI','CHARLIE','CHANG'],
'Age':[35,42,63,29,47,51],
'Salary_in_1000':[100,93,78,120,64,115],
'FT_Team':['STEELERS','SEAHAWKS','FALCONS','FALCONS','PATRIOTS','STEELERS']})
n1=(df['Age']< 60)
n2=(df['Salary_in_1000']>=100)
n3=(df['FT_Team'].str.startswith('S'))
Run Code Online (Sandbox Code Playgroud)
使用这些条件进行选择,它将返回 JOHN 和 CHANG。
目标
我想创建未选择数据的数据框和一个返回不期望条件的新列。例如,
* ALLEN: n1, n2
* BOB: n2,n3
* NIKI: n3
* CHANG: n2,n3
Run Code Online (Sandbox Code Playgroud)
新列名称为reason. 值是条件变量,类型是字符串。
尝试
我必须尝试每个条件并手动记录每个变量违反哪些规则。
df
\n ts_code type close\n\n 0 861001.TI 1 648.399\n 1 861001.TI 20 588.574\n 2 861001.TI 30 621.926\n 3 861001.TI 60 760.623\n 4 861001.TI 90 682.313\n ... ... ... ...\n 8328 885933.TI 5 1083.141\n 8329 885934.TI 1 951.493\n 8330 885934.TI 5 1011.346\n 8331 885935.TI 1 1086.558\n 8332 885935.TI 5 1028.449\nRun Code Online (Sandbox Code Playgroud)\n目标
\nts_code l5d_close l20d_close \xe2\x80\xa6\xe2\x80\xa6 l90d_close\n861001.TI NaN 1.10 0.95\n\xe2\x80\xa6\xe2\x80\xa6 \xe2\x80\xa6\xe2\x80\xa6 \xe2\x80\xa6\xe2\x80\xa6 \xe2\x80\xa6\xe2\x80\xa6\nRun Code Online (Sandbox Code Playgroud)\n我想 groupbyts_code来计算closeof type(1)/the closeof type(N:5,20,30\xe2\x80\xa6\xe2\x80\xa6)。861001.TI例如,为l5d_closenan,因为类型为5时没有值。 …
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 f1.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 f2.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 f3.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 f4.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 f5.csv\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 f6.doc\n\n0 directories, 6 files\nRun Code Online (Sandbox Code Playgroud)\n在test文件夹中,有6个文件。
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 all.tar\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 f1.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 f2.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 f3.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 f4.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 f5.csv\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 f6.doc\n\n0 directories, 7 files\nRun Code Online (Sandbox Code Playgroud)\ntar -cvf all.tar f1.md f2.md f3.md f4.txt f5.csv f6.doc \nRun Code Online (Sandbox Code Playgroud)\n虽然我用上面的方法得到了结果,但是我必须输入所有文件名和压缩文件名,这很不方便。例如,我可以选择所有文件并右键单击,然后选择压缩选项,而无需输入all.tar(我不介意 .tar 文件名。)
命令行方法,无需输入具体文件名。
\n输入
l1=[1,3,5,6,7]
l2=[1,2,2,3,4]
l3=[5,4,3,2,1]
l4=[5,5,3,2,1]
l5=[1,2,3,4.1,3,2]
l6=[3,2,1,0.4,1,2,3]
l7=[1,2,10,4,8,9,2]
l8=[1,2,3,4,4,3,2,1]
l9=[-0.05701686, 0.57707936, -0.34602634, -0.02599778]
l10=[ 0.13556905, 0.45859 , -0.34602634, -0.09178798, 0.03044908]
l11=[-0.38643975, -0.09178798, 0.57707936, -0.05701686, 0.00649252]
Run Code Online (Sandbox Code Playgroud)
注意:序列中的值是浮点数。
预期的
find_targeted_seq,该函数返回一个序列,无论是严格单调还是有一个双方都严格单调的转折点。例如,l1, l3, l5,l6是预期的。尝试
l8.rawinput:
lst = ['a_app','a_bla','a_cat','b','c','d_d1','d_xe','d_c','e_1','e_2','f']
元素lst是字符串
预期结果:
new_lst = [['a_app','a_bla','a_cat'],'b','c',['d_d1','d_xe','d_c'],['e_1','e_2'],'f']
任何元素包括'_'将被分组到列表元素中,但是如果不同,它们的开始将被分组到不同的列表中,例如['a_app','a_bla','a_cat'], ['d_d1','d_xe','d_c'].
注意:新列表的顺序不会仅将包含"_"的压缩字符串更改为列表.
pandas ×7
python ×6
command-line ×1
count ×1
difference ×1
mysql ×1
mysql-5.5 ×1
numpy ×1
scikit-learn ×1
sorting ×1
sql ×1
sql-update ×1
tar ×1
timedelta ×1
unix ×1