大熊猫将行和列拆分为彼此匹配

时间:2019-03-01 15:18:17

标签: python pandas

我现在看起来像这样,其中有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]],
                       })

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

1 个答案:

答案 0 :(得分:2)

我认为您需要将分隔符设置为read_csv中的标签:

df = pd.read_csv(file, sep="\t")

import pandas as pd

temp=u"""  DATA_ID\tAmount_1\tAmount2\tAmount3
DATA_1\t1307\t13463\t5447
DATA_2\t144054\t1744\t8934
 DATA_3\t919\t4038\t16013
DATA_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  Amount3
0    DATA_1      1307    13463     5447
1    DATA_2    144054     1744     8934
2    DATA_3       919     4038    16013
3    DATA_4    135409   113611    96418