4.5678
5
7.987.998
は、私は、小数点
4.56
5
7.98
後にのみ2値のデータを抽出したい列の値を持つデータフレームを使用している場合
データは文字列として格納されます。どんな助けもありがとう。ありがとうございました !
4.5678
5
7.987.998
は、私は、小数点
4.56
5
7.98
後にのみ2値のデータを抽出したい列の値を持つデータフレームを使用している場合
データは文字列として格納されます。どんな助けもありがとう。ありがとうございました !
str = "7.987.998"
ind = str.find('.')
if ind > 0:
res = str[:ind+3]
findは、探している特殊文字の最初の出現のインデックスを返します。ここでは '.' – ZiGaelle
これはパンダとは関係ありませんその質問には答えません。 –
def get_two_spaces(input):
input_list = input.split('.')
if len(input_list) >= 2:
return input_list[0] + '.' + input_list[1][:2]
return input
私はここで何が起こっている打破う:
round
str.extract
を使用して
print(s)
0 4.5678
1 5
2 7.987.998
Name: 0, dtype: object
print(type(s))
Out[152]: pandas.core.series.Series
:
r = s.str.extract('(\d+(?:\.\d+)?)', \
expand=False).astype(float).round(2)
print(r)
0 4.57
1 5.00
2 7.99
Name: 0, dtype: float64
あなたの予想出力は説明として残念ながら、5は混合型につながること、整数にすることはできず、一般的です落胆した。
別パンダアプローチ:
import pandas as pd
df = pd.DataFrame(['4.5678','5','7.987.998'], columns=['A'])
s = df['A'].replace(to_replace='^(\d+\.\d+)\.\d+', value=r'\1', regex=True)\
.astype('float').map('{:,.2f}'.format)
print(s)
出力:
0 4.57
1 5.00
2 7.99
Name: A, dtype: object
"DF"?あなたはデータフレームを意味すると思いますか?あなたは 'pandas'を使っていると仮定しますか?これらは重要なタグです。 –
はい。私はデータフレームを意味しました。ありがとうございました ! – beginnerdscientist
@beginnerdscientist覚えておいて欲しい答えはあなたの質問に答えることはできません。それはパンダとは関係ありません。下記を参照してください:https://stackoverflow.com/a/46553671/4909087 –