将数据帧附加到空数据帧不起作用 [英] Appending dataframe to empty dataframe is not working
本文介绍了将数据帧附加到空数据帧不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在文件顶部附近声明了一个具有全局范围的空数据框:
I declared an empty data frame near the top of my file with a global scope:
final_df = pd.DataFrame()
我有 stats_df
成功打印了正确的值,但是 final_df
在附加 stats_df 后没有改变:
I have stats_df
successfully printing the correct value, but final_df
is not changing after appending stats_df to it:
stats_df = pd.DataFrame(X, columns=stats_feature_names).sum().to_frame().T
print('statsdf being appended: \n', stats_df)
print('final_df before append: \n', final_df)
final_df.append(stats_df)
print('final_df after append: \n', final_df)
这些打印语句的输出是:
The output of these print statements are:
statsdf being appended:
GF GA
0 14 33
final_df before append:
Empty DataFrame
Columns: []
Index: []
final_df after append:
Empty DataFrame
Columns: []
Index: []
什么时候应该:
statsdf being appended:
GF GA
0 14 33
final_df before append:
Empty DataFrame
Columns: []
Index: []
final_df after append:
GF GA
0 14 33
为什么 stats_df
没有附加到 final_df
?
Why is stats_df
not being appended to final_df
?
推荐答案
您需要分配给新的 DataFrame
,因为使用 DataFrame.append
,不是纯python append
:>
You need assign to new DataFrame
, because use DataFrame.append
, not pure python append
:
stats_feature_names = ['a','b']
final_df = pd.DataFrame()
X = [[1,2]]
stats_df = pd.DataFrame(X, columns=stats_feature_names).sum().to_frame().T
print('statsdf being appended: \n', stats_df)
print('final_df before append: \n', final_df)
final_df = final_df.append(stats_df, ignore_index=True)
print('final_df after append: \n', final_df)
a b
0 1 2
但更好的解决方案是追加到列表(纯 python 追加)和循环外使用 concat
:
But better solution is append to list (pure python append) and out of loop use concat
:
L = []
for x in iterator:
stats_df = pd.DataFrame([[1,2]], columns=stats_feature_names).sum().to_frame().T
L.append(stats_df)
final_df = pd.concat(L, ignore_index=True)
print('final_df after append: \n', final_df)
这篇关于将数据帧附加到空数据帧不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文