我试图通过移除数据下面的括号将一列值分成3列。但我无法分开。我用下面的代码在python中分离。
Point:
(48.1371079, 11.5753822, 0.0)
(51.5142273, 7.4652789, 0.0)
(51.3406321, 12.3747329, 0.0)
预期产出
Lat Long Point
48.1371079 11.5753822 0.0
51.5142273 7.4652789 0.0
51.3406321 12.3747329 0.0
我尝试的代码:
data[['Lat', 'Long', 'Point']] = data.point.str.split(", ",expand=True)
错误:
ValueError Traceback (most recent call last)
<ipython-input-42-35ce2b258b1f> in <module>
----> 1 data[['Lat', 'Long', 'Point']] = data.point.str.split(", ",expand=True)
~\Anaconda3\lib\site-packages\pandas\core\frame.py in __setitem__(self, key, value)
2933 self._setitem_frame(key, value)
2934 elif isinstance(key, (Series, np.ndarray, list, Index)):
-> 2935 self._setitem_array(key, value)
2936 else:
2937 # set column
~\Anaconda3\lib\site-packages\pandas\core\frame.py in _setitem_array(self, key, value)
2959 if isinstance(value, DataFrame):
2960 if len(value.columns) != len(key):
-> 2961 raise ValueError("Columns must be same length as key")
2962 for k1, k2 in zip(key, value.columns):
2963 self[k1] = value[k2]
ValueError: Columns must be same length as key
您可以这样做:
df = pd.DataFrame(df['point'].tolist(), index=df.index)
print(df)
0 1 2
0 48.137108 11.575382 0.0
1 51.514227 7.465279 0.0
2 51.340632 12.374733 0.0
下面是一种将一系列元组转换为数据帧(即展开元组)的方法:
from io import StringIO
import pandas as pd
# create sample data
df = pd.DataFrame({'Point':
[(48.1371079, 11.5753822, 0.0),
(51.5142273, 7.4652789, 0.0),
(51.3406321, 12.3747329, 0.0),]})
# expand
df = df['Point'].apply(lambda x: pd.Series(x, index=('X', 'Y', 'Z')))
print(df)
X Y Z
0 48.137108 11.575382 0.0
1 51.514227 7.465279 0.0
2 51.340632 12.374733 0.0
Using apply/Series从以下站点获得:https://stackoverflow.com/a/45901030/13608599
如果点:
是索引
,请尝试以下操作:
data = data.reset_index()
for i in list(data.columns):
data[i] = (data[i]
.str.replace(',', '')
.str.replace(' ', '')
.str.replace('(', '')
.str.replace(')', ''))
data = data.rename(columns=({
'level_0': 'Lat',
'level_1': 'Long',
'Point:': 'Point'
}))
问题内容: 我正在处理一个较大的csv文件,并且最后一列的旁边是一串文本,我想用一个特定的定界符来分割它。我想知道是否有使用pandas或python的简单方法? 我想先按空格再在列中按冒号分开,但每个单元格将导致列数不同。我具有重新排列列的功能,因此列位于工作表的末尾,但是我不确定从那里开始如何做。我可以使用内置函数和快速宏在中完成此操作,但是我的数据集记录太多,无法处理。 最终,我想记录约翰·
我有一个火花数据框如下,并希望分裂成3的空间列。 下面是预期的结果。第一项留在text1列,第二项转到text2,其余的都转到text3(如果有)。原始列值可能包含空记录或带有任意数量分隔符的值,分隔符是空格。 提前感谢!
问题内容: 我有一个带有一列的数据框,我想将其分为两列,其中一列标题为,另一列为 我的数据框df如下所示: 我不知道如何使用以达到分割行单元的目的。我可以用来添加一个新列,并用填充它hello。有任何想法吗? 问题答案: 对于以下简单情况: 我有一个带有定界符的文本列,我想要两列 最简单的解决方案是: 或者,你可以使用以下方法自动为拆分的每个条目创建一个带有一列的DataFrame: 如果字符串的
我试图将一个数据列表一分为二,但我不知道如何正确执行。 当我使用dput(a)时,我的数据如下 结构(列表)(V1=结构(c(1L、9L、10L、11L、12L、13L、14L、15L、16L、2L、3L、4L、5L、6L、7L、8L)。标签=c(“1\t1200.30”,“10\t1305.80”,“11\t1263.02”,“12\t1312.67”,“13\t1229.85”,“14\t12
问题内容: 我有两个长度相同的清单: 和 我想在我有的地方创建字典 最好的方法是什么? 问题答案: dict(zip([1,2,3,4], [a,b,c,d])) 如果列表很大,则应使用。 如果键的数量多于值,并且您想为额外的键填写值,则可以使用。 这里,,,和是变量-它会正常工作(只要它们被定义),但你可能是指,如果你希望他们为字符串。 从每个可迭代对象中获取第一个项目,并生成一个元组,然后从每
我有一个列,其中包含该列的名称和值,格式如下: 我不想使用上面的设置,而是希望按以下格式排列列: 问题是这些值在整个列中并不一致,有时我会有这些值的组合,有时没有,有时只有一个,但顺序如何并不重要,所有这些列都必须创建。怎样才能用一种通用的方式调用它们,而不用像这样指定值:
我有: 我想要: 似乎在scala中我可以写:< code>df.select($"value。_1 ",$ "值。_2 ",$ "值。_3"),但这在python中是不可能的。 那么有没有好的办法呢?
问题内容: 我正在尝试使用PIL将照片分成多张。 但它似乎不起作用。它会分割照片,但不会以精确的方式(您可以尝试)。 问题答案: