Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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/7/arduino/2.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_Csv - Fatal编程技术网

Python 如何根据行上的索引列进行折叠和合并?

Python 如何根据行上的索引列进行折叠和合并?,python,python-3.x,pandas,csv,Python,Python 3.x,Pandas,Csv,我有一个带有NaN值的大熊猫数据帧,如下所示: ID NUM val time_duration company True Data_in restriction_time top 1168 3023 NaN 0 days 00:00:00 0 NaN NaN NaN

我有一个带有
NaN
值的大熊猫数据帧,如下所示:

ID        NUM           val      time_duration    company           True         Data_in   restriction_time        top
1168      3023          NaN     0 days 00:00:00        0             NaN           NaN          NaN                NaN
1172      926           NaN     0 days 00:00:00        1             NaN           NaN          NaN                NaN
121       626           NaN     0 days 00:03:11      Google          NaN           NaN          NaN                NaN
121       626           NaN          NaN               3             NaN           NaN          NaN                NaN
121       626            0           NaN               4       31/01/2018 23:59    NaN    01/01/2018 00:00         NaN
121       626           NaN          NaN             Amazon          NaN           NaN          NaN                NaN
121       626           NaN          NaN               8             NaN           NaN          NaN                NaN
555       2703          NaN     0 days 00:01:35        9             NaN           NaN          NaN                NaN
555       2703          NaN          NaN              10             NaN           NaN          NaN                NaN
555       2703          NaN          NaN              11             NaN           NaN          NaN                NaN
555       2703           0           NaN              12       31/01/2018 23:59    NaN     01/01/2018 00:00        NaN
555       2703          NaN          NaN              13             NaN           NaN          NaN                NaN
如何将pandas数据框中具有相同
ID
的所有元素折叠并合并到一个单元格中。例如:

ID                                NUM                 val        time_duration       company                 True                Data_in     restriction_time          top
1168                             3023                 NaN       0 days 00:00:00          0                    NaN                  NaN               NaN               NaN
1172                              926                 NaN       0 days 00:00:00          1                    NaN                  NaN               NaN               NaN
121,121,121,121,121       626,626,626,626,626          0        0 days 00:03:11     Google,3,4,Amazon,8  31/01/2018 23:59          NaN         01/01/2018 00:00        NaN
555,555,555,555,555     2703,2703,2703,2703,2703       0        0 days 00:01:35     Google,3,4,Amazon,8  31/01/2018 23:59          NaN         01/01/2018 00:00        NaN
正如您所看到的,具有相同
ID
的所有元素都被折叠并连接到一个单元格中,添加逗号以将所有元素与其他单元格分开。这里的问题是,我真的不明白如何使用pandas来处理
NaN
值和字符串。

您可以试试

df.index=df.ID

yourdf=df.stack().astype(str).groupby(level=[0,1]).apply(','.join).unstack().reindex(columns=df.columns)
你可以试试

df.index=df.ID

yourdf=df.stack().astype(str).groupby(level=[0,1]).apply(','.join).unstack().reindex(columns=df.columns)

谢谢你的帮助!谢谢你的帮助!