python - 检查文本在 python 中是否右对齐

标签 python pandas dataframe right-align

我有一个像这样的数据框:

  |number  |
1 |122     |
2 |345     | 
3 |     456|
4 |     789|

我想把它改成:

  |number|
1 |nan|
2 |nan| 
3 |456|
4 |789|

我只想要右对齐值

最佳答案

我认为您需要测试 Series.str.endswith 是否有空格,然后用 Series.mask 替换为 NaN ,通过 Series.str.strip 删除可能的跟踪空格并转换为 float :

df['number'] = df['number'].mask(df['number'].str.endswith(' ')).str.strip().astype(float)

或者:

df['number'] = df['number'].mask(df['number'].str[-1] == ' ').str.strip().astype(float)

print (df)
   number
1     NaN
2     NaN
3   456.0
4   789.0

如果想要整数,可以通过在 pandas 0.24+ 中工作的 integer na 来实现:

m = df['number'].str.endswith(' ')
df['number'] = df['number'].mask(m).str.strip().astype(float).astype('Int64')

print (df)
   number
1     NaN
2     NaN
3     456
4     789

关于python - 检查文本在 python 中是否右对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59497391/

相关文章:

python - 在时间轴上绘制离散组计数

c# - 奇怪的行为 C# 与 Python 字节操作

pandas - 如何将包含 bins 的 pandas 数据框写入文件以便将其读回 pandas?

python - Django 最佳实践 - 表单处理逻辑(用于创建/更新模型)应该放在哪里

python - 如何在 PyQt5 中自定义 QGroupBox 标题?

pandas - 使用 Pandas 比较两列中的值

python - PySpark。将 Dataframe 传递给 pandas_udf 并返回一个系列

python-3.x - 如何编码具有多种数据类型的数据集?

r - 子选择数据框

apache-spark - 从多个源创建单个 Spark Dataframe?