我需要连接两种不同长度的日期框架:
总共有三个block_wise索引[0,1,2,3,4,5,6,7],[0,1,2,3,4],[0,1,2,3,4, 5,6],总长度为20。
第二帧只有一列: 此列表示类似枚举的变量,可以是重复,可以是int或string。但是这个列/帧的长度严格等于第一帧中索引的块级别。所以一帧中有三个块索引,两个长度为3。
Pandas最好的办法是什么?块级别&因子水平可能远远超过3。
答案 0 :(得分:3)
您可以dict
D
boolean mask
df = pd.DataFrame({'A':range(1,21)}, index=[0,1,2,3,4,5,6,7]+[0,1,2,3,4]+[0,1,2,3,4,5,6])
df['B'] = 'b_' + df.A.astype('str')
df['C'] = 'c_' + df.A.astype('str')
df['A'] = 'a_' + df.A.astype('str')
df1 = pd.DataFrame({'D':['X','Y','Z']})
df['D'] = (df.index == 0).cumsum() - 1
d = df1['D'].to_dict()
print (d)
{0: 'X', 1: 'Y', 2: 'Z'}
df.D = df.D.map(d)
print (df)
A B C D
0 a_1 b_1 c_1 X
1 a_2 b_2 c_2 X
2 a_3 b_3 c_3 X
3 a_4 b_4 c_4 X
4 a_5 b_5 c_5 X
5 a_6 b_6 c_6 X
6 a_7 b_7 c_7 X
7 a_8 b_8 c_8 X
0 a_9 b_9 c_9 Y
1 a_10 b_10 c_10 Y
2 a_11 b_11 c_11 Y
3 a_12 b_12 c_12 Y
4 a_13 b_13 c_13 Y
0 a_14 b_14 c_14 Z
1 a_15 b_15 c_15 Z
2 a_16 b_16 c_16 Z
3 a_17 b_17 c_17 Z
4 a_18 b_18 c_18 Z
5 a_19 b_19 c_19 Z
6 a_20 b_20 c_20 Z
创建的<#@ template language="C#" inherits="BaseTextTemplate" #>
<#@ parameter type="System.Boolean" name="Namespaced" #>
{/ 3}}使用map
:
<# if (Namespaced) { #>
export class <#= Model.TsName#> {
<# } #>
<# else { #>
export class <#= Model.TsNamespacedName#> {
<# } #>