【问题标题】:Pandas convert columns of one dataframe to index in another dataframePandas 将一个数据帧的列转换为另一个数据帧的索引
【发布时间】:2018-04-15 07:43:57
【问题描述】:

我有一些 .txt 格式的文本文件。

我正在尝试使用它们创建一个 .csv 文件,以便 .txt 文件位于索引列中。

稍后我会在编辑数据框时添加包含人口统计和统计信息的列(例如 L1、Prompt 和 Level),但我想对齐索引中的 txt 文件,以便进行一些 NLTK 分析。

想要的输出是:

            L1         Prompt    Level    
FileName
data1.txt   Japanese   P1        High
data2.txt   Korean     P1        High
data3.txt   Chinese    P1        High
data4.txt   Japanese   P2        Med
data5.txt   Korean     P2        Med
data6.txt   Chinese    P2        Med 
data7.txt   Arabic     P1        High
data8.txt   German     P1        High
data9.txt   Spanish    P1        High
data10.txt  Arabic     P2        Med
data11.txt  German     P2        Med
data12.txt  Spanish    P2        Med 

我试过的代码如下

df1=pd.read_csv('data1.txt',names=['data1'])
df2=pd.read_csv('data2.txt',names=['data2'])
df3=pd.read_csv('data3',names=['data3'])
result=pd.concat([df1,df2,df3],axis=1)
result.to_csv('mergedfile.txt',index=False)

但这当然会创建列

   data1.txt   data2.txt   data3.txt
0  XYZ         GHI         PQR
1  ABC         JKL         STU
2  DEF         MNO         VWX

XYZ 和 ABC 都是句子,例如“我的祖国和美国的区别之一是便利店”。或“一个区别是公共交通,每个人都在我的祖国乘坐公共交通,而在美国则没有那么多。”

每个 txt 文件我有超过 100,000 个话语,所以我不想将所有数据都放在数据框中,如果我可以将 txt 文件放入索引列,那将是最理想的。

最终,我想将其导出为 .csv,然后将其用于进一步分析。

【问题讨论】:

  • 您必须提供有关文本文件格式的更多信息
  • @Primusa 在此处添加了更多信息,希望对您有所帮助!基本上它只是一个巨大的 txt 文件,上面有超过 100,000 个句子。

标签: python pandas csv dataframe


【解决方案1】:

您可以将数据框中的列用作新数据框的索引:

df1 = pd.DataFrame({'data1': ['XYZ', 'ABC', 'DEF']})
df2 = pd.DataFrame({'data2': ['GHI', 'JKL', 'MNO']})
df3 = pd.DataFrame({'data3': ['PQR', 'STU', 'VWX']})

df = pd.concat([df1, df2, df3], axis=1)

print(df)

#   data1 data2 data3
# 0   XYZ   GHI   PQR
# 1   ABC   JKL   STU
# 2   DEF   MNO   VWX

res = pd.DataFrame(index=[k+'.txt' for k in df],
                   columns=['L1', 'Prompt', 'Level'])

print(res)

#             L1 Prompt Level
# data1.txt  NaN    NaN   NaN
# data2.txt  NaN    NaN   NaN
# data3.txt  NaN    NaN   NaN

【讨论】:

  • 谢谢@jpp 有没有办法让我基本上可以将索引设置为 data#.txt 而不是 data#,并且列中没有任何数据?我基本上有超过 100,000 个句子,所以如果我可以将实际数据保留在索引中,它会更清晰。再次感谢!
猜你喜欢
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 2022-01-24
  • 2015-08-05
  • 2021-02-23
  • 2017-04-20
  • 2021-08-02
  • 1970-01-01
相关资源
最近更新 更多