我在我的python 3.X中使用Pandas 0.20.3.我想在另一个pandas数据框的pandas数据框中添加一列.数据框都包含51行.所以我使用了以下代码:
class_df['phone']=group['phone'].values
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
ValueError: Cannot set a frame with no defined index and a value that cannot be converted to a Series
Run Code Online (Sandbox Code Playgroud)
class_df.dtypes给了我:
Group_ID object
YEAR object
Terget object
phone object
age object
Run Code Online (Sandbox Code Playgroud)
并type(group['phone'])返回pandas.core.series.Series
您能否建议我删除此错误需要做哪些更改?
组['电话']的前5行如下:
0 [735015372, 72151508105, 7217511580, 721150431...
1 []
2 [735152771, 7351515043, 7115380870, 7115427...
3 [7111332015, 73140214, 737443075, 7110815115...
4 [718218718, 718221342, 73551401, 71811507...
Name: phoen, dtype: object
Run Code Online (Sandbox Code Playgroud)
小智 10
在大多数情况下,当您返回一个空的数据框时,会出现此错误。对我有用的最好方法是在使用apply()之前先检查数据框是否为空
if len(df) != 0:
df['indicator'] = df.apply(assign_indicator, axis=1)
Run Code Online (Sandbox Code Playgroud)
你有一列参差不齐的清单.您唯一的选择是分配列表列表,而不是列表数组(这是.value给出的).
class_df['phone'] = group['phone'].tolist()
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以使用apply()result_type函数的 set 参数来“减少”,而不是使用 if 语句。
df['new_column'] = df.apply(func, axis=1, result_type='reduce')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38601 次 |
| 最近记录: |