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