Python 我们可以从另一个数据帧向数据帧中的字段追加一个序列吗?

Python 我们可以从另一个数据帧向数据帧中的字段追加一个序列吗?,python,python-3.x,dataframe,Python,Python 3.x,Dataframe,我从我的第一个数据帧创建了一个系列,如下所示 myResult = df_append['schedule_code'] 现在,我想将该系列添加到第二个数据帧中 grouped_and_summed['schedule_code'] = myResult 结果全是南辕北辙 'myResult'字段是一个简单的代码,被解析到第一个数据帧中 我似乎无法将其解析到第二个数据帧,也无法从第一个数据帧复制它。必须能够得到一个变量,并在一个字段中填写所有内容,对吗。有什么想法吗?我正在使用熊猫1.0

我从我的第一个数据帧创建了一个系列,如下所示

myResult = df_append['schedule_code']
现在,我想将该系列添加到第二个数据帧中

grouped_and_summed['schedule_code'] = myResult
结果全是南辕北辙

'myResult'
字段是一个简单的代码,被解析到第一个数据帧中


我似乎无法将其解析到第二个数据帧,也无法从第一个数据帧复制它。必须能够得到一个变量,并在一个字段中填写所有内容,对吗。有什么想法吗?

我正在使用熊猫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
我认为这相当于对每个数据帧索引执行左连接(如果每个索引只包含一列,也就是说,因为熊猫系列是索引对象)。如果尝试更改其中一个数据帧的索引,请使用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属性获取值数组,而不是索引序列:

    grouped_and_summed['schedule_code'] = df_append['schedule_code'].values
    
  • 同样,我强烈建议尽可能使用df.merge以实现一致性