Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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 遍历字符串列并对Pandas中的单元格值进行排序_Python_Python 3.x_Pandas - Fatal编程技术网

Python 遍历字符串列并对Pandas中的单元格值进行排序

Python 遍历字符串列并对Pandas中的单元格值进行排序,python,python-3.x,pandas,Python,Python 3.x,Pandas,假设我们有以下数据帧: d = {'col1':['cat; banana','kiwi; orange; apple','melon'], 'col2':['a; d; c','p; u; c','m; a'], 'col3':[4,1,4]} df= pd.DataFrame(d) 对于我希望按字母顺序对值进行排序的所有字符串列,我知道如何逐列进行排序,即: df['col1'] = df['col1'].map(lambda x: '; '.join(sorted(x.s

假设我们有以下数据帧:

d = {'col1':['cat; banana','kiwi; orange; apple','melon'],
    'col2':['a; d; c','p; u; c','m; a'],
    'col3':[4,1,4]}
df= pd.DataFrame(d)
对于我希望按字母顺序对值进行排序的所有字符串列,我知道如何逐列进行排序,即:

df['col1'] = df['col1'].map(lambda x: '; '.join(sorted(x.split('; '))))
同样,对于
col2
我想知道如何在整个数据帧中实现这一点?我试图选择字符串对象并执行map方法,但没有成功。即:

df.select_dtypes(include='object').map(lambda x: '; '.join(sorted(x.split('; '))))
更新:因此,一种低效的方法是:

v = df.select_dtypes(include='object').applymap(lambda x: '; '.join(sorted(x.split('; '))))
w = df.select_dtypes(exclude='object')
pd.concat([v, w], axis=1)

但是我相信还有更好的方法。

我会在一个低效的for循环中进行测试,以确保您没有将其应用于int

for col in df.columns:
    if df[col].dtypes is 'str':
        df[col] = df[col].map(lambda x: '; '.join(sorted(x.split('; '))))
也许有更好的矢量化方法

您可以使用此技巧(解包数据帧并使用
pd.dataframe.assign
):

输出:

                  col1     col2  col3
0          banana; cat  a; c; d     4
1  apple; kiwi; orange  c; p; u     1
2                melon     a; m     4

谢谢,但是不应该
is
be
==
==
将返回False或True,当我们对列进行排序时,它将全部为False,除非每一行都已排序。。。我想我已经失去了你的评论。
                  col1     col2  col3
0          banana; cat  a; c; d     4
1  apple; kiwi; orange  c; p; u     1
2                melon     a; m     4