Python ValueError:传递的值的形状是(1627),索引暗示(3627)

2024-05-02 04:13:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试运行以下代码:

import pandas as pd
import numpy as np


df = pd.read_csv('example.csv', sep=';', engine='python')
df1 =df.sort_values(['topic', 'student', 'level'], ascending=True)

count_list = df1.apply(lambda x: [df.ix[x.name-1].student if x.name >0 else np.nan, x.student, x.level>1], axis=1).values

#line giving the error
df1_count = pd.DataFrame(columns=['st_source','st_dest','reply_count'], data=count_list)

但我经常收到这样的错误信息:

^{pr2}$

有人知道我怎么修好它吗?在

谢谢你!在


Tags: csv代码nameimportdfascountnp
1条回答
网友
1楼 · 发布于 2024-05-02 04:13:23
count_list = df1.apply(lambda x: (df.ix[x.name-1].student,np.nan,np.nan) if x.name 0 else (np.nan, x.student, x.level>1), axis=1).values
df2 = pd.DataFrame(count_list)
df2[['st_source','st_dest','reply_count']] = df2[0].apply(pd.Series)
df2 = df2.drop(0, 1)

这将返回如下数据帧:

^{pr2}$

也许有更好更有效的方法来做到这一点,但这解决了问题。请注意,我使用了您的if语句来返回长度为3的元组,而不管它处于哪个条件。在

相关问题 更多 >