当前位置: 首页 > 知识库问答 >
问题:

如何在python中将一列数据传输到多列的一行中?

微生智刚
2023-03-14

我正试图从网站上搜集一些数据,并设法收集重要信息,但当我将其打印到excel文件中时,数据只会流入一列。提供的代码是否有解决方案,或者我是否需要创建多个结果,然后打印出来。

我对网页抓取非常陌生,我尝试过使用<代码>。join,它刚刚将所有数据放在我想要的一行中,但是它将所有数据连接到一列中


totals = page_soup.findAll("p", {"class":"b-fight-details__table-text"})

for i in totals:
    stats = i.text.replace("\n"," ")        
    print(stats, end= " ")
    f.write(stats)

f.close()

 Stephen Thompson   Anthony Pettis         0            1            47 of 107            32 of 55            43%            58%            47 of 107 

当前的输出是这样的,但是它都被困在一列中,我希望它如下所示,很明显,我将在输出代码中有标题

Fighter A        Fighter B      KD  TKD  S     TS  
Stephen Thompson Anthony Pettis 0   1    47 of 107 32 of 55 43% 58% etc...

共有3个答案

陶宏浚
2023-03-14

如果只做一次并且您对该布局感到满意(p标签分隔的内容最终在同一单元格中)...您可以使用熊猫

import pandas as pd   
tables = pd.read_html('http://www.ufcstats.com/fight-details/56ae02578b1163ee')
df = tables[0]
df.to_csv(r'C:\Users\User\Desktop\data.csv', sep=',', encoding='utf-8-sig',index = False )

如果你想在多场比赛中使用熊猫附加,请参见以下答案:

https://stackoverflow.com/a/17135044/6241235

徐星阑
2023-03-14

只需更改打印结束

for i in totals:
    stats = i.text.strip()        
    print(stats, end = " ")
    #...#

它应该会起作用。

如果您希望在您编写的输出文件中相同,请替换:

f.write(stats + " ")

使用:

f.write(stats + " ")

例如:

with open("out.txt", "w") as f:
    for i in totals:
        stats = i.text.strip()        
        print(stats, end = " ");
        f.write(stats + " ")

如果字符串本身包含“\n”个字符,则可以替换它们:

with open("out.txt", "w") as f:
    for i in totals:
        stats = i.replace("\n", " ")        
        print(stats, end = " ");
        f.write(stats + " ")
邬楚青
2023-03-14

您可以尝试用print(stats, end = " ")替换代码行:print(stats)

 类似资料:
  • 问题内容: 我有一个像这样的文件: 而且我想按行转移列,因此输出应如下所示: 我写了这个命令: 问题是此命令将所有内容都放在一行上!所以输出是这样的: 问题答案: 这可能起作用: 在Ideone上观看它。

  • 问题内容: 是否可以将SQL中表中的所有记录的数据从A列复制到B列? 问题答案: 这个怎么样 这将更新每一行。

  • 我有一个csv文件,它有一个值为1或2的列exch。另一列中有许多数字。问题是我想要EXCH2数据紧挨着EXCH1数据。是否有一种方法可以将EXCH2数据从与EXCH1数据相同的列中移除,使其成为自己的新列,并重置索引,使它们并排在一起? 电流输出:

  • 问题内容: 我正在处理一个较大的csv文件,并且最后一列的旁边是一串文本,我想用一个特定的定界符来分割它。我想知道是否有使用pandas或python的简单方法? 我想先按空格再在列中按冒号分开,但每个单元格将导致列数不同。我具有重新排列列的功能,因此列位于工作表的末尾,但是我不确定从那里开始如何做。我可以使用内置函数和快速宏在中完成此操作,但是我的数据集记录太多,无法处理。 最终,我想记录约翰·

  • 问题内容: 我有一个这样的熊猫数据框: 我现在想做的是获取一个包含Column1和新columnA的新数据框。此columnA应该包含第2列-(to)n的所有值(其中n是从Column2到行尾的列数),如下所示: 我如何最好地解决这个问题?任何意见将是有益的。提前致谢! 问题答案: 您可以按行调用pass ,然后将dtype转换为和: 在这里,我呼吁摆脱,但是我们需要再次强制转换为,这样我们才不会

  • 问题内容: [‘a’,’a’,’b’,’c’,’c’,’c’] 至 和 问题答案: x=[‘a’,’a’,’b’,’c’,’c’,’c’] >>> map(x.count,x) [2, 2, 1, 3, 3, 3] >>> dict(zip(x,map(x.count,x))) {‘a’: 2, ‘c’: 3, ‘b’: 1} >>>