我有一个数据框,我想双倍' (或三倍,或......)。我不是试图将数据帧与自身连接起来,即将df的一个完整副本堆叠在df的另一个完整副本的顶部。
从这开始:
import pandas as pd
from io import StringIO
from IPython.display import display
A_csv = """country
Afghanistan
Brazil
China"""
with StringIO(A_csv) as fp:
A = pd.read_csv(fp)
display(A)
结果
country
0 Afghanistan
1 Brazil
2 China
我想得到这样的东西;索引和缩进并不是那么重要。
country
0 Afghanistan
1 Afghanistan
2 Brazil
3 Brazil
4 China
5 China
答案 0 :(得分:1)
使用np.repeat
:
df = pd.DataFrame(A.values.repeat(2), columns=A.columns)
df
country
0 Afghanistan
1 Afghanistan
2 Brazil
3 Brazil
4 China
5 China
对于N-D数据帧,应使用axis
中的repeat
参数扩展解决方案:
df = pd.DataFrame(A.values.repeat(2, axis=0), columns=A.columns)
答案 1 :(得分:0)
您可以使用np.repeat
pd.DataFrame(np.repeat(df['country'], 2)).reset_index(drop = True)
country
0 Afghanistan
1 Afghanistan
2 Brazil
3 Brazil
4 China
5 China
答案 2 :(得分:0)
使用pd.concat
pd.concat([df]*2,axis=0).sort_index().reset_index(drop=True)
Out[56]:
country
0 Afghanistan
1 Afghanistan
2 Brazil
3 Brazil
4 China
5 China