Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于其他单元格值向单元格添加数据_Python_Python 3.x_Pandas - Fatal编程技术网

Python 基于其他单元格值向单元格添加数据

Python 基于其他单元格值向单元格添加数据,python,python-3.x,pandas,Python,Python 3.x,Pandas,在一个大的数据框中,我有一大组具有各种名称和源的数据 可复制数据 名字姓氏来源 马特·琼斯 詹姆斯·史密斯YY 史密斯威斯顿机场 威斯顿超级酒店 马特琼斯YY 威斯顿超级酒店 抄送: df=pd.read_剪贴簿sep='\\s+' 数据如下: +------------+-----------+--------+ | First Name | Last Name | Source | +------------+-----------+--------+ | Matt | Jone

在一个大的数据框中,我有一大组具有各种名称和源的数据

可复制数据

名字姓氏来源 马特·琼斯 詹姆斯·史密斯YY 史密斯威斯顿机场 威斯顿超级酒店 马特琼斯YY 威斯顿超级酒店 抄送: df=pd.read_剪贴簿sep='\\s+' 数据如下:

+------------+-----------+--------+
| First Name | Last Name | Source |
+------------+-----------+--------+
| Matt       | Jones     | XX     |
| James      | Smith     | YY     |
| Smith      | Weston    | AA     |
| Weston     | Supermare | CC     |
| Matt       | Jones     | YY     |
| Weston     | Supermare | FF     |
+------------+-----------+--------+
我需要它看起来像这样:

+------------+-----------+--------+
| First Name | Last Name | Source |
+------------+-----------+--------+
| Matt       | Jones     | XX, YY |
| James      | Smith     | YY     |
| Smith      | Weston    | AA     |
| Weston     | Supermare | CC, FF |
+------------+-----------+--------+
我可以使用以下方法使重复数据消除过程正常工作:

Conn_df = Conn_df.drop_duplicates(subset=['First Name', 'Last Name'])
但是,在执行重复数据消除之前,我需要在同一行上记录相同数据的所有源

您可以使用按列名和姓对数据帧进行分组,然后在源列上应用agg函数join

使用:

这张照片是:

  First Name  Last Name  Source
0      James      Smith      YY
1       Matt      Jones  XX, YY
2      Smith     Weston      AA
3     Weston  Supermare  CC, FF
您可以使用按列“名”和“姓”对数据帧进行分组,然后在源列上应用agg函数join

使用:

这张照片是:

  First Name  Last Name  Source
0      James      Smith      YY
1       Matt      Jones  XX, YY
2      Smith     Weston      AA
3     Weston  Supermare  CC, FF
这样做:

print(df.groupby(by=['FirstName', 'LastName']).agg(lambda x: ', '.join(x)))
FirstName LastName
James     Smith          YY
Matt      Jones      XX, YY
Smith     Weston         AA
Weston    Supermare  CC, FF
这样做:

print(df.groupby(by=['FirstName', 'LastName']).agg(lambda x: ', '.join(x)))
FirstName LastName
James     Smith          YY
Matt      Jones      XX, YY
Smith     Weston         AA
Weston    Supermare  CC, FF

这看起来不错,但如果不手动重新键入所有内容,就几乎不可能回到数据帧中。请注意,这看起来不错,但如果不手动重新键入所有内容,几乎不可能返回到数据帧。您好,谢谢您提出的解决方案。使用上面的方法,源字段的每一行都填充为“无”。您好,感谢您提出的解决方案。使用上述方法,源字段的每一行都填充为“无”。