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.Replaceice\u data.Extent
为ice\u data.Extent.astype(float)
。不过,正如我在文章中所述,float会删除我需要的额外精度,因此这不是一个可行的选项。我在尝试更新代码时遇到了这个错误,ValueError:无法将浮点NaN转换为integer@EliTurasky但你们是用浮点数做整数,我不确定精度是否有问题。无论如何,请看更新。嗨@EliTurasky。预期的输出是什么?@EliTurasky整数没有小数点。你在找什么?嗨@EliTurasky。预期的输出是什么?@EliTurasky整数没有小数点。你在找什么?