我正在使用熊猫1.0.1版,这似乎是允许的。如果运行以下代码:
import pandas as pd
# Generate data
df1_data = list(range(1,11))
df2_data = list(range(11,21))
# Create dataframes
df1 = pd.DataFrame(df1_data, columns = ['data_df1'])
df2 = pd.DataFrame(df2_data, columns = ['data_df2'])
df2['new_col'] = df1['data_df1']
print(df2)
您应该看到以下输出:
data_df2 new_col
0 11 1
1 12 2
2 13 3
3 14 4
4 15 5
5 16 6
6 17 7
7 18 8
8 19 9
9 20 10
我相信这等效于对每个数据框索引执行左连接(如果每个数据框仅由一列组成,也就是说,由于pandas Series是索引对象)。如果您尝试更改这些数据帧之一的索引,请说df1:
import pandas as pd
# Generate data
df1_data = list(range(1,11))
df2_data = list(range(11,21))
# Create new index
new_index = list(range(1,11))
# Create dataframes and apply new index to df1
df1 = pd.DataFrame(df1_data, columns = ['data_df1'], index=new_index)
df2 = pd.DataFrame(df2_data, columns = ['data_df2'])
df2['new_col'] = df1['data_df1']
print(df2)
您应该看到以下结果,因为新的df1索引从1开始,而df2的索引仍然从0开始:
data_df2 new_col
0 11 NaN
1 12 1.0
2 13 2.0
3 14 3.0
4 15 4.0
5 16 5.0
6 17 6.0
7 18 7.0
8 19 8.0
9 20 9.0
因此,理想情况下,最好使用df.merge来执行此类任务,而不是将一列从一个数据框直接分配到另一个数据框,但是如果您完全确定自己的尺寸在每个数据框中都匹配,并且两个数据框都已排序通过简单地从一个复制并粘贴到另一个中来获得所需的输出,您可以:
通过执行以下操作来重置索引:
grouped_and_summed.reset_index(inplace=True, drop=True)
df_append.reset_index(inplace=True, drop=True)
grouped_and_summed['schedule_code'] = df_append['schedule_code']
使用.values属性获取值数组,而不是索引的Series:
grouped_and_summed['schedule_code'] = df_append['schedule_code'].values
同样,如果可能的话,我强烈建议使用df.merge来保持一致性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句