我有这样的数据框架:
+----------+---+
| code |idn|
+----------+---+
| [I0478]| 0|
| [B0527]| 1|
| [C0798]| 2|
| [C0059]| 3|
| [I0767]| 4|
| [I1001]| 5|
| [C0446]| 6|
+----------+---+
我想将新列添加到DataFrame
+----------+---+------+
| code |idn| item |
+----------+---+------+
| [I0478]| 0| I0478|
| [B0527]| 1| B0527|
| [C0798]| 2| C0798|
| [C0059]| 3| C0059|
| [I0767]| 4| I0767|
| [I1001]| 5| I1001|
| [C0446]| 6| C0446|
+----------+---+------+
请帮助我这样做!
使用 []
:
df.withColumn("item", df["item"][0])
,因此,如果您查看模式,问题将是显而易见的 - 您试图将子集的列不是数组。因此,解决方案是。*展开列。
df.select('code.*', 'idn')
python
import pandas as pd
array = {'code': [['I0478'],['B0527'], ['C0798'], ['C0059'], ['I0767'], ['I1001'], ['C0446']], 'idn':[0, 1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(array)
df['item'] = df.apply(lambda row: str(row.code).lstrip('[').rstrip(']').strip("'").strip(), axis= 1)
print(df)
df.withColumn("item", df["code"][0])
如果" item"列是数组类型,则是字符串的结构,您可能需要检查df.Select(" code")的项目元素的键。键(字符串)具有。