社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Pandas,Python-合并具有相同键但具有不同值的列

Bellycose • 3 年前 • 1606 次点击  

从我的for循环中,结果列表如下:

#These lists below are list types and in ordered/structured.
key=[1234,2345,2223,6578,9976] 
index0=[1,4,6,3,4,5,6,2,1]
index1=[4,3,2,1,6,8,5,3,1]
index2=[9,4,6,4,3,2,1,4,1]

我如何将它们合并到熊猫的桌子上?以下是预期。

key  | index0 |  index1 |  index2
1234 |   1    |    4    |    9
2345 |   4    |    3    |    4
...  |  ...   |   ...   |   ...
9967 |   1    |    1    |    1

我曾尝试使用pandas,但只在数据类型方面遇到了错误。然后我将数据类型设置为int64和int32,但仍然再次遇到关于数据类型的错误。

对于一个可选问题,我是否应该尝试用SQL从列表中的类似数据组装一个表?我正在用mySQL学习SQL,想知道在记录保存和持久存储方面是否比熊猫更方便?

非常感谢您的帮助。如果你有任何问题,请告诉我。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128476
文章 [ 2 ]  |  最新文章 3 年前
rhug123
Reply   •   1 楼
rhug123    3 年前

还有一种方法:

首先将数据加载到字典中:

d = dict(key=[1234,2345,2223,6578,9976],
index0=[1,4,6,3,4,5,6,2,1],
index1=[4,3,2,1,6,8,5,3,1],
index2=[9,4,6,4,3,2,1,4,1])

然后转换成df:

df = pd.DataFrame({i:pd.Series(j) for i,j in d.items()})

输出:

      key  index0  index1  index2
0  1234.0       1       4       9
1  2345.0       4       3       4
2  2223.0       6       2       6
3  6578.0       3       1       4
4  9976.0       4       6       3
5     NaN       5       8       2
6     NaN       6       5       1
7     NaN       2       3       4
8     NaN       1       1       1
richardec
Reply   •   2 楼
richardec    3 年前

用口述把它传给 pd.DataFrame :

dct = {
    'key': pd.Series(key),
    'index0': pd.Series(index0),
    'index1': pd.Series(index1),
    'index2': pd.Series(index2),
}

df = pd.DataFrame(dct)

输出:

>>> df
      key  index0  index1  index2
0  1234.0       1       4       9
1  2345.0       4       3       4
2  2223.0       6       2       6
3  6578.0       3       1       4
4  9976.0       4       6       3
5     NaN       5       8       2
6     NaN       6       5       1
7     NaN       2       3       4
8     NaN       1       1       1