熊猫拆分行和列以相互匹配

我现在看起来像一个有 250 行的单列


                DATA_ID\tAmount_1\tAmount2\tAmount3

0               DATA_1\t1307\t13463\t5447

1         DATA_2\t144054\t1744\t8934

2         DATA_3\t919\t4038\t16013

3      DATA_4\t135409\t113611\t96418

我想要的是


DATA_ID | Amount1 | Amount2 | Amount3

data1   | 123     | 14123   | 931931

data2   | 1233    | 38823   | 123513

我坚持这个,我试过的是


for i in range(len(df)):

    for j in range(4):

        new_df = pd.DataFrame({df.columns[0].split()[j]: [df.iloc[i].str.split()[0][j]],

                       })

但这似乎不起作用。我发现了类似的问题,但结果不是以编程方式解析器,我认为我应该迭代解决它,但我真的不知道如何


慕标5832272
浏览 164回答 1
1回答

陪伴而非守候

我认为您需要将分隔符设置为制表符read_csv:df = pd.read_csv(file, sep="\t")import pandas as pdtemp=u"""  DATA_ID\tAmount_1\tAmount2\tAmount3DATA_1\t1307\t13463\t5447DATA_2\t144054\t1744\t8934 DATA_3\t919\t4038\t16013DATA_4\t135409\t113611\t96418"""#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'df = pd.read_csv(pd.compat.StringIO(temp), sep="\t")print (df)    DATA_ID  Amount_1  Amount2  Amount30    DATA_1      1307    13463     54471    DATA_2    144054     1744     89342    DATA_3       919     4038    160133    DATA_4    135409   113611    96418
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python