如何转换此dataframe
Coordinate (X, Y) | value |
---|---|
(46.8637, 2.3134) | 001 |
(42.8637, 2.5134) | 002 |
因此:
X | Y | value |
---|---|---|
46.8637 | 2.3134 | 001 |
42.8637 | 2.5134 | 002 |
当我尝试此方法时:
col_list = ['X', 'Y']
for n,col in enumerate(col_list):
temp_dict[col] = temp_dict['Coordinate (X, Y)'].apply(lambda location: location[n])
结果是:
X | Y | value |
---|---|---|
4 | 6 | 001 |
4 | 2 | 002 |
分析解答
您可以使用ast.literal_eval
:
>>> import ast
>>> import pandas as pd
>>>
>>> df = pd.DataFrame({
... 'Coordinate (X, Y)': ['(46.8637, 2.3134)', '(42.8637, 2.5134)'],
... 'value': ['001', '002']
... })
>>> df
Coordinate (X, Y) value
0 (46.8637, 2.3134) 001
1 (42.8637, 2.5134) 002
>>> df[['X', 'Y']] = df['Coordinate (X, Y)'].apply(ast.literal_eval).apply(pd.Series)
>>> df.drop('Coordinate (X, Y)', axis=1, inplace=True)
>>> df = df[['X', 'Y', 'value']]
>>> df
X Y value
0 46.8637 2.3134 001
1 42.8637 2.5134 002