将行和列拆分为彼此匹配

将行和列拆分为彼此匹配

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


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

最佳答案

我认为您需要将分隔符设置为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

关于python - Pandas 将行和列拆分为彼此匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54947475/

10-12 17:44