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']
grouped_and_summed['schedule_code'] = df_append['schedule_code'].values