为了账号安全,请及时绑定邮箱和手机立即绑定

删除熊猫框架中具有其他形状的行

删除熊猫框架中具有其他形状的行

叮当猫咪 2021-09-14 17:29:33
我正在尝试删除熊猫数据框中在“MEL”列中具有不同于 (99, 13) 形状的行。path    MEL  word0   8d37d10e7f97ddea2eca9d39a4cf821b4457b041.wav    [[-10.160675, -13.804866, 0.9188097, 4.415375,...   one1   9a8f761be3fa0d0a963f5612ba73e68cc0ad11ba.wav    [[-10.482644, -13.339122, -3.4994812, -5.29343...   one2   314cdc39f628bc68d216498b2080bcc7a549a45f.wav    [[-11.076196, -13.980294, -17.289637, -41.0668...   one3   cc499e63eee4a3bcca48b5b452df04990df83570.wav    [[-13.830213, -12.64104, -3.7780707, -10.76490...   one4   38cdcc4d9432ce4a2fe63e0998dbca91e64b954a.wav    [[-11.967776, -23.27864, -10.3656, -8.786977, ...   one我已经尝试了以下:indexNames = merged[ merged['MEL'].shape != (99,13) ].indexmerged.drop(indexNames , inplace=True)然而,第一行代码给了我key error: True. 任何人都知道如何做到这一点?
查看完整描述

3 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

你需要得到一系列的形状

df['MEL'].apply(lambda x: x.shape)

然后你可以测试这个以获得布尔系列

df['MEL'].apply(lambda x: x.shape) == (93,3)

然后用布尔系列索引

new_df = df.loc[df['MEL'].apply(lambda x: x.shape) == (93,3), :]

这将为您提供与您的形状相匹配的一切。这样做可能比使用 df.drop() 更容易,但你可以这样做

correct = df['MEL'].apply(lambda x: x.shape) == (93,3)
new_df = df.drop(correct[~correct].index)


查看完整回答
反对 回复 2021-09-14
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

... 换句话说,您需要列'MEL'具有形状的所有行(99, 13)。我会做

my_desired_df = merged[merged['MEL'].shape == (99,13)]


查看完整回答
反对 回复 2021-09-14
  • 3 回答
  • 0 关注
  • 236 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信