猿问

如何复制和修改熊猫数据框中的行?

我正在尝试使用存储在 txt 文件中的大量数据来构建数据帧。然而,我没有构建数据,所以我不得不处理其中包含的令人沮丧的格式。我无法让我的代码在大数据中工作(并且这样做几乎使我的计算机崩溃),因此设置一个较小的数据框,如下所示:


    'Value'             ID_1                ID_2

0   11122222            ABC42123            33333

1   21219299            YOF21233            88821

2   00022011            ERE00091            23124

3   75643311;21233332   ROB21288            99421

4   12412421            POW94277            12231;33221

5   54221721            IRS21231;YOU28137   13123

我的挫败感在于在数据中使用了分号。数据旨在表示 ID,但多个 ID 已分配给多个变量。我想重复这些行,以便我可以搜索各个 ID 的数据,并有一个如下所示的数据表:


    'Value'             ID_1                ID_2

0   11122222            ABC42123            33333

1   21219299            YOF21233            88821

2   00022011            ERE00091            23124

3   75643311            ROB21288            99421

4   21233332            ROB21288            99421

5   12412421            POW94277            12231

6   12412421            POW94277            33221

7   54221721            YOU28137            13123

8   54221721            IRS21231            13123

重新索引不是问题,只要不同的 ID 保持相互链接并保持正确的值。


不幸的是,到目前为止,我所有拆分数据的尝试都以失败告终。我设法设置了一个重复包含分号的数据的函数,通过我的函数为每一列解析它,但之后无法拆分数据。


def delete_dup(df,column):

for a in column:

    location = df.loc[df.duplicated(subset= column, keep=False)]

    for x in location:

        semicolon = df.loc[df[column].str.contains(';', regex=True)]

        duplicate = semicolon.duplicated(subset= column, keep='first')

        tiny_df = semicolon.loc[duplicate]


        split_up = tiny_df[column].str.split(';')


        return pd.concat([df, split_up])


我觉得这是我最接近的一次,但离我想要的还差得很远。我尝试在数据帧上执行的任何“If”语句都会遇到“ValueError:DataFrame 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或a.all()." 错误,读起来令人沮丧。关于如何让熊猫做我想做的任何想法?


海绵宝宝撒
浏览 116回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答