python - 如何使用 python、pandas 修改(字符串数据列表为单个字符串)数据系列的每个元素?

标签 python pandas string list dataframe

如何改变数据系列里面的每一个数据,我来详细解释一下。 我有一个板球比赛数据集,我想从整个数据集中找出两支球队相互比赛的次数。

team_names                    total_count

['Afghanistan','Bangladesh']    1

enter image description here

我得到的结果是“阿富汗”和“孟加拉国”互相对战 1 次。但是在这里我想修改这个数据框。我不想显示 ['Afghanistan', 'Bangladesh'],而是想显示如下数据:

team_names                total_count

'Afghanistan-Bangladesh'    1

如何做到这一点?

(我试过:

1) df["team_names1"] = df['team_names'].str.join("-")

2) df['team_names1'] = df['team_names'].apply(lambda x: '-'.join(x))

3) df['team_names1'] = df['team_names'].apply(lambda x: '-'.join(x),1) 

但它们都没有给我正确的输出。以上所有代码产生相同的输出:

team_names                                           total_count
[-'-A-f-g-h-a-n-i-s-t-a-n-'-,- -'-B-a-n-g-l-a-..]       1

最佳答案

如果 team_names 的值是一个字符串列表,使用:

df["team_names"] = df.team_names.str.join("-")

结果:

               team_names  total_count
0  Afghanistan-Bangladesh            1

如果这些值实际上是字符串文字,那么最好的选择是首先使用 ast.literal_eval 将它们转换为所需的数据类型(字符串列表):

import ast
df["team_names"] = df.team_names.apply(ast.literal_eval)
df["team_names"] = df.team_names.str.join("-")

结果:

               team_names  total_count
0  Afghanistan-Bangladesh            1

关于python - 如何使用 python、pandas 修改(字符串数据列表为单个字符串)数据系列的每个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67529966/

相关文章:

python - 有什么方法可以使用 Django 模型作为接口(interface)吗?

python - Seaborn/MatplotLib 轴和数据值格式 : Hundreds, 千和百万

python - 如何使用 Pandas 计算与起始值相比的百分比变化?

python - 使用 Pandas GroupBy 和 size()/count() 生成聚合的 DataFrame

java - 字符串中的数字总和无法正常工作

javascript - 为什么 '❌' [0] === '❌' 但 '✔️' [0] !== '✔️' ?

python - 如何使用网格几何管理器调整 TkInter 标签的绝对大小而不是附加空间

python - 如何检查数字是否为 np.float64 或 np.float32 或 np.float16?

pandas - 使用 Python 3 对 csv 文件进行排序

java - 使用正则表达式/字符串方法 : Print Words containing Pattern