Python 将作为字符串的log10数字转换为数据帧

Python 将作为字符串的log10数字转换为数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我这里有一个数据框 Year Month Day Extent 1 1978 10 26 10.231 2 1978 10 28 10.420 3 1978 10 30 10.557 4 1978 11 1 10.670 5 1978 11 3 10.777 我的列的类型为: Year object Month object Day object Extent object

我这里有一个数据框

Year    Month   Day Extent
1   1978    10  26  10.231
2   1978    10  28  10.420
3   1978    10  30  10.557
4   1978    11  1   10.670
5   1978    11  3   10.777
我的列的类型为:

Year      object
Month     object
Day       object
Extent    object
dtype: object
我想将这些值更改为浮点值

预期输出(数据块为浮点,而不是str):


编辑:我对浮点和整数的含义感到困惑。很抱歉编辑我上面的文章以反映情况。

您可以使用
np.floor

ice_data['Extent'] = np.floor(ice_data.Extent).astype(int)
或者一个简单的
//1

ice_data['Extent'] = (ice_data.Extent//1).astype(int)

更新:对于字符串类型:

ice_data['Extent'] = ice_data.Extent.str.extract('^(\d+)')[0].astype(int)

您可以使用
np.floor

ice_data['Extent'] = np.floor(ice_data.Extent).astype(int)
或者一个简单的
//1

ice_data['Extent'] = (ice_data.Extent//1).astype(int)

更新:对于字符串类型:

ice_data['Extent'] = ice_data.Extent.str.extract('^(\d+)')[0].astype(int)
给你:

将熊猫作为pd导入
从io导入StringIO
ice\u数据=pd.read\u csv(StringIO(““”年-月-日范围
1   1978    10  26  10.231
2   1978    10  28  10.420
3   1978    10  30  10.557
4   1978    11  1   10.670
5 1978年11月3日10.777“),九月=“\s+”)
ice_数据['Extent']=ice_数据['Extent'].类型(int)
打印(ice_数据)
输出:

   Year  Month  Day  Extent
1  1978     10   26      10
2  1978     10   28      10
3  1978     10   30      10
4  1978     11    1      10
5  1978     11    3      10
给你:

将熊猫作为pd导入
从io导入StringIO
ice\u数据=pd.read\u csv(StringIO(““”年-月-日范围
1   1978    10  26  10.231
2   1978    10  28  10.420
3   1978    10  30  10.557
4   1978    11  1   10.670
5 1978年11月3日10.777“),九月=“\s+”)
ice_数据['Extent']=ice_数据['Extent'].类型(int)
打印(ice_数据)
输出:

   Year  Month  Day  Extent
1  1978     10   26      10
2  1978     10   28      10
3  1978     10   30      10
4  1978     11    1      10
5  1978     11    3      10


问题还不清楚:您希望将
“10.231”
转换为什么整数值?(你所说的“在log10中”的值是什么意思?)我编辑这篇文章是为了更好地反映这个问题。你需要它是整数还是浮点?您的措辞仍然令人困惑,您希望您的输出是什么?请参阅编辑。问题不清楚:您希望将
“10.231”
转换为什么整数值?(你所说的“在log10中”的值是什么意思?)我编辑这篇文章是为了更好地反映这个问题。你需要它是整数还是浮点?您的措辞仍然令人困惑,您希望您的输出是什么?请参阅编辑。这不起作用,因为加载时的数据块类型是str。将
ice\u数据。数据块
替换为
ice\u数据。数据块。astype(float)
。不过,正如我在文章中所述,float删除了我需要的额外精度,所以这不是一个可行的选择。我在尝试更新代码ValueError:Cannotconvert float NaN to时遇到了这个错误integer@EliTurasky但你们是用浮点数做整数,我不确定精度是否有问题。无论如何,请参阅更新。这不起作用,因为加载时数据块的类型是str.Replace
ice\u data.Extent
ice\u data.Extent.astype(float)
。不过,正如我在文章中所述,float会删除我需要的额外精度,因此这不是一个可行的选项。我在尝试更新代码时遇到了这个错误,ValueError:无法将浮点NaN转换为integer@EliTurasky但你们是用浮点数做整数,我不确定精度是否有问题。无论如何,请看更新。嗨@EliTurasky。预期的输出是什么?@EliTurasky整数没有小数点。你在找什么?嗨@EliTurasky。预期的输出是什么?@EliTurasky整数没有小数点。你在找什么?