当前位置: 首页 > 面试题库 >

如何在pandas数据框中执行字符串的左,右和中

曾嘉福
2023-03-14
问题内容

在熊猫数据框中,如何应用一种excel
left(’state’,2)只接受前两个字母。理想情况下,我也想学习如何在数据框中使用左,右和中间。因此,对于此特定示例,需要一个等效而不是一个“技巧”。

data = {'state': ['Auckland', 'Otago', 'Wellington', 'Dunedin', 'Hamilton'],
'year': [2000, 2001, 2002, 2001, 2002],
'pop': [1.5, 1.7, 3.6, 2.4, 2.9]}
df = pd.DataFrame(data)

print df

     pop       state  year
 0  1.5    Auckland  2000
 1  1.7       Otago  2001
 2  3.6  Wellington  2002
 3  2.4     Dunedin  2001
 4  2.9    Hamilton  2002

我想得到这个:

    pop       state     year  StateInitial
 0  1.5       Auckland    2000     Au
 1  1.7       Otago       2001     Ot
 2  3.6       Wellington  2002     We
 3  2.4       Dunedin     2001     Du
 4  2.9       Hamilton    2002     Ha

问题答案:

列中每个值的前两个字母:

>>> df['StateInitial'] = df['state'].str[:2]
>>> df
   pop       state  year StateInitial
0  1.5    Auckland  2000           Au
1  1.7       Otago  2001           Ot
2  3.6  Wellington  2002           We
3  2.4     Dunedin  2001           Du
4  2.9    Hamilton  2002           Ha

最后的两个是df['state'].str[-2:]。不知道您到底想要什么,但是您可以使用apply方法将任意函数应用于列:

>>> df['state'].apply(lambda x: x[len(x)/2-1:len(x)/2+1])
0    kl
1    ta
2    in
3    ne
4    il


 类似资料:
  • 问题内容: 我想获取一列中字符串的频率计数。一方面,这类似于将数据框折叠为仅反映列中的字符串的一组行。我能够通过循环解决此问题,但知道有更好的解决方案。 df示例: 并想出去: 我搜索了很多论坛,但找不到合适的答案。 我假设使用pivot_table方法是正确的方法,但是无法获取正确的参数来折叠没有为输出df提供明显索引的表。 我可以通过使用value_counts()遍历每列并将每个值计数系列附

  • 问题内容: 无论如何,有没有使用映射功能或更好的方法来替换整个数据框中的值? 我只知道如何在系列上执行映射。 我想用数字替换“ tesst”和“ set”列中的字符串,例如set = 1,test = 2 这是我的数据集的一个示例:(原始数据集非常大) 最终结果应该是 感谢您的指教, 问题答案: 那呢 正如@Jeff在评论中指出的那样,在熊猫版本<0.11.1中,手动添加到末尾以正确转换tesst

  • 我想在Apache Flink中制作一个流数据的时间窗口。我的数据看起来有点像这样: 但显然,Flink并不是将我的数据作为列表来阅读。它将其作为字符串读取,因此,我得到以下异常: 如何对字符串数据执行时间窗口,或者如何将此数据转换为元组?

  • 问题内容: 我想在Python中执行字符串替换,但只执行第一个实例从右向左移动。在理想的世界中,我将拥有: 鉴于不存在的最佳方法是什么? 问题答案: 并可以用来模拟

  • 问题内容: 我正在努力看似非常简单的事情。我有一个包含非常长字符串的pandas数据框。 现在,当我尝试打印相同的字符串时,我看不到完整的字符串,而只看到了字符串的一部分。 我尝试了以下选项 使用 使用 使用 其中一个stackoverflow答案建议通过使用pandas display选项来增加列宽,但该方法也不起作用。 我也没有得到如何帮助我。 任何想法表示赞赏。看起来很简单,但无法获得! 问

  • 问题内容: 有没有比下面的示例更快的方法来找到Pandas DataFrame中最长字符串的长度? 使用IPython的进行计时大约需要10秒钟。 问题答案: DSM的建议似乎是您无需进行一些手动微优化就能获得的最佳效果: 请注意,显式使用该方法似乎并没有多大改进。如果您不熟悉IPython(这是非常方便的语法所来自的地方),我绝对建议您尝试一下,以快速测试此类内容。 更新 添加了屏幕截图: