gpt4 book ai didi

python - pandas 最优雅的添加行的方式

转载 作者:行者123 更新时间:2023-11-28 21:41:56 26 4
gpt4 key购买 nike

像这样在数据框中追加行的最优雅的方法是什么:

     a    b   time
0 nan nan 8
1 nan nan 5
2 nan nan 3

进入:

     a    b   time
0 nan nan 8
1 nan nan 7
2 nan nan 6
3 nan nan 5
4 nan nan 4
5 nan nan 3
6 nan nan 2
7 nan nan 1
8 nan nan 0

我尝试的是构建一个函数 missing_times 女巫返回给我缺少时间的新数据帧,但我在将两个数据库压缩在一起时遇到了问题。做这类题最有效的方法是什么?

最佳答案

您可以将 DataFrame 构造函数与 reindex_axis 一起使用和 numpy.arange :

df = pd.DataFrame({'time':np.arange(df['time'].max() + 1)[::-1]})
.reindex_axis(df.columns, axis=1)
print (df)
a b time
0 NaN NaN 8
1 NaN NaN 7
2 NaN NaN 6
3 NaN NaN 5
4 NaN NaN 4
5 NaN NaN 3
6 NaN NaN 2
7 NaN NaN 1
8 NaN NaN 0

如果原始 df 中的值使用 set_index + reindex + reset_index + reindex_axis :

print (df)
a b time
0 4 5 8
1 2 8 5
2 1 2 3


df = df.set_index('time')
.reindex(np.arange(df['time'].max() + 1)[::-1])
.reset_index()
.reindex_axis(df.columns, axis=1)
print (df)
a b time
0 4.0 5.0 8
1 NaN NaN 7
2 NaN NaN 6
3 2.0 8.0 5
4 NaN NaN 4
5 1.0 2.0 3
6 NaN NaN 2
7 NaN NaN 1
8 NaN NaN 0

time 列重复的解决方案 merge :

print (df)
a b time
0 4 5 8
1 2 3 8
2 1 2 3

df1 = pd.DataFrame({'time':np.arange(df['time'].max() + 1)[::-1]})
df = pd.merge(df,df1, how='outer').sort_values('time', ascending=False)
print (df)
a b time
0 4.0 5.0 8
1 2.0 3.0 8
3 NaN NaN 7
4 NaN NaN 6
5 NaN NaN 5
6 NaN NaN 4
2 1.0 2.0 3
7 NaN NaN 2
8 NaN NaN 1
9 NaN NaN 0

关于python - pandas 最优雅的添加行的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44200816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com