如何将熊猫数据框拆分为列?

时间:2018-12-27 10:35:07

标签: python pandas dataframe flask

enter image description here我有一个数据帧,该数据帧的长度将为100。我在网上找到的一个临时Web模板上显示此数据框(我不太了解html)。问题在于列表仅使您从1-100一直向下滚动,而且看起来非常糟糕。我想并排放置两到三列(例如:一列中有33个项目,然后中间有33个项目,依此类推),这样数据帧就不会浪费太多空间。我不知道这是html问题还是数据帧问题,请原谅我。

我正在将Flask用于Web框架。

如果需要我提供html代码,则可以。

while counter < 50:
e = str(elem[counter].get_attribute("href"))
e = e.replace("https://www.reddit.com/r/", "")
e = e[:-1]

if e in df['Subreddit'].values:
    df.loc[df['Subreddit'] == e, 'Appearances'] += 1
else:
    df = df.append({'Subreddit': e, 'Appearances': 1}, ignore_index=True)

print(e)
# because there are 2 html tags of the same subreddit name, we have to increment by 2 each time.
counter = counter + 2


df.sort_values(by='Appearances', ascending=False,  inplace=True)
print(df)
df.to_csv(Location, index=False)
browser.close()

当前状态显示在图片中。我想在popularsubs区域下面有三列数据。

1 个答案:

答案 0 :(得分:0)

示例数据:

df = pd.DataFrame(data={'B': ['a', 'b', 's', 'f', 'g', 'r', 'h'], 'A':[1, 2, 3, 4, 5, 6, 7]})

您可以将数据框拆分为数据框数组:

size = 3
array = [df.iloc[start: start+size].reset_index() for start in range(0, len(df), size)]

然后如果需要单个数据框,则将它们连接起来。我使用reset_index在所有数据帧中具有相同的索引以将它们连接起来。如果您不想连接,则无法重置索引。

df = pd.concat(array, 1).drop(['index'], 1)

出局:

   B  A  B  A    B    A
0  a  1  f  4    h  7.0
1  b  2  g  5  NaN  NaN
2  s  3  r  6  NaN  NaN

如果您愿意,也可以使用函数df.fillna(value)将NaN替换为另一个值。 示例:df.fillna('')看起来您最后只有空单元格。