为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕标5832272 2021-11-23 16:43:26
我现在看起来像一个有 250 行的单列                DATA_ID\tAmount_1\tAmount2\tAmount30               DATA_1\t1307\t13463\t54471         DATA_2\t144054\t1744\t89342         DATA_3\t919\t4038\t160133      DATA_4\t135409\t113611\t96418我想要的是DATA_ID | Amount1 | Amount2 | Amount3data1   | 123     | 14123   | 931931data2   | 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 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

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


查看完整回答
反对 回复 2021-11-23
  • 1 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信