- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在使用 wide_to_long 函数时遇到了一些问题。这个例子工作正常:
Loc Nom Meas-1 Meas-2 Meas-3
200 A 0.8 1.1 1.2
201 B 4.9 5.1 5.2
pd.wide_to_long(df, 'Meas', i=['Loc','Nom'], j='Ref', sep='-').reset_index()
Loc Nom Meas Ref
200 A 0.8 1
200 A 1.1 2
200 A 1.2 3
201 B 4.9 1
201 B 5.1 2
201 B 5.2 3
我的问题是我的数据框中“Meas-”后面的字符串是一个随机的字母数字序列号。一个基本的例子:
Loc Nom Meas-1 Meas-2D Meas-3
200 A 0.8 1.1 1.2
201 B 4.9 5.1 5.2
pd.wide_to_long(df, 'Meas', i=['Loc','Nom'], j='Ref', sep='-').reset_index()
Loc Nom Meas Meas-2D Ref
200 A 0.8 1.1 1
200 A 1.2 1.1 3
201 B 4.9 5.1 1
201 B 5.2 5.1 3
更糟糕的是,如果所有“Meas-”部分后跟包含字母的字符串,我会得到一个空数据帧错误:
Loc Nom Meas-1D Meas-2D Meas-3D
200 A 0.8 1.1 1.2
201 B 4.9 5.1 5.2
pd.wide_to_long(df, 'Meas', i=['Loc','Nom'], j='Ref', sep='-').reset_index()
Empty DataFrame
我怎样才能让这个函数使用“Meas-”后面的任何字符串作为 Ref,而不仅仅是数字?
谢谢!
最佳答案
你应该看看suffix
参数。(如果你没有提到它,它会默认寻找数字'\d+'
,因为'2D'不是数字, 然后什么都不返回)
pd.wide_to_long(df, 'Meas', i=['Loc','Nom'], j='Ref', sep='-',suffix='\w+').reset_index()
Out[289]:
Loc Nom Ref Meas
0 200 A 1 0.8
1 200 A 2D 1.1
2 200 A 3 1.2
3 201 B 1 4.9
4 201 B 2D 5.1
5 201 B 3 5.2
关于python - 具有随机 id 变量的 Pandas wide_to_long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50806659/
我对在 pandas 中使用 Wide_to_long 时的参数有疑问。有一个名为 suffix 的参数我不明白。 在文档中说: suffix : str, default ‘\d+’ A regul
我在 pandas 中做了一些计算,这是数据框。第一行是列名,第二行包含所有值。 当我使用 pd.wide_to_long 将这一行转换为多行时,它会创建一些额外的错误行和列。示例:只有一个时间值为
假设我有一个这样的数据框 ID,Time1,Value1,Time2,Value2,Time3,Value3 1,2,1.1,3,1.2,4,1.3 1,5,2.1,6,2.2,7,2.3 预期的数据
我在使用 pd.wide_to_long() 方法将数据从宽格式转换为长格式时遇到问题。错误内容为 IndexError: Too muchlevels: Index has only 1 level
我正在尝试将数据框转换为长格式,并希望按照以下规则保留记录: (1) 如果 id 在 stub 中有数据 - 保留所有非空的“长”记录,删除空的(2) 如果id在任何 stub 中都没有数据,则只保留
我目前有以下数据框: 1_1 1_2 1_3 1_4 1_5 2_1 ... 9_5 10_1
我在使用 wide_to_long 函数时遇到了一些问题。这个例子工作正常: Loc Nom Meas-1 Meas-2 Meas-3 200 A 0.8 1.1
这应该相当简单,但我还没有想明白。 我正在尝试将 df1 转换为 df2,其中 df1 和 df2 是 pandas 数据帧 df1 = pd.DataFrame({'site': ['1', '2'
我可以使用 wide_to_long 的示例,它工作正常。 df = pd.DataFrame({"A1970" : {0 : "a", 1 : "b", 2 : "c"},
我是一名优秀的程序员,十分优秀!