Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.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_Pandas - Fatal编程技术网

是否有用于此的Python函数?

是否有用于此的Python函数?,python,pandas,Python,Pandas,好的,所以我手动编写了一个函数来实现这一点,但我想知道是否有内置的python/pandas/numpy/。。。功能。基本上我想要的是 data_col = data.loc[data['col3'] == 'a'] data_final = data_col['col2'] 但我希望它适用于col3的所有值。因此,它来自: 致: 注意col1中的值是如何不存在的。如果没有你能想到的能做这样事情的函数,不要担心做一个。我已经完成了,它适合我的需要。只是好奇,我在学校还没有完成所有的课程,所以

好的,所以我手动编写了一个函数来实现这一点,但我想知道是否有内置的python/pandas/numpy/。。。功能。基本上我想要的是

data_col = data.loc[data['col3'] == 'a']
data_final = data_col['col2']
但我希望它适用于col3的所有值。因此,它来自:

致:

注意col1中的值是如何不存在的。如果没有你能想到的能做这样事情的函数,不要担心做一个。我已经完成了,它适合我的需要。只是好奇,我在学校还没有完成所有的课程,所以我对所有的功能都不是非常熟悉。

试试:

for v in df["col3"].unique():
    m = df["col3"] == v
    df.loc[m, "tmp"] = range(m.sum())

df = df.pivot(index="tmp", columns="col3", values="col2").rename_axis("")
print(df)
印刷品:

col3 a b c d e
零点零六七八九一零
一点零一零九八七六
代码

df = df.pivot_table(
    'col2', columns='col3', aggfunc=(lambda x:x.to_list())
).apply(pd.Series.explode).rename_axis(None, axis=1).reset_index(drop=True))
输出

    a   b   c   d   e
0   6   7   8   9   10
1   10  9   8   7   6
解释

  • 通过使用pivot表,我们可以基于col3的组列出col2的所有元素,然后我们可以分解列表
  • 末尾使用rename_轴和reset_索引,根据需要转换索引

  • 您的数据似乎以一种非常奇怪的方式组织起来。没有任何东西表明
    a
    的哪些值与
    b
    列的哪些值或数据点出现顺序以外的任何其他列的值一致,而且似乎有一种假设,即
    col3
    的所有值出现的次数相等,如果为真,可能应该反映在原始数据结构设计中。