Python ';系列';对象没有属性';len';熊猫CSV文件
我想根据包含字符数的列进行打印。在该特定列中包含不同长度的字符串。我目前的代码如下Python ';系列';对象没有属性';len';熊猫CSV文件,python,pandas,Python,Pandas,我想根据包含字符数的列进行打印。在该特定列中包含不同长度的字符串。我目前的代码如下 if df['UDH'].len(8): df=df.groupby(df[['UDH'].str[:7],'Original Sender ID','Received Date/Time'])['Body'].apply(' '.join).reset_index() if df['UDH'].len(9): df=df.groupby(df[['UDH'].str[:8],
if df['UDH'].len(8):
df=df.groupby(df[['UDH'].str[:7],'Original Sender ID','Received Date/Time'])['Body'].apply(' '.join).reset_index()
if df['UDH'].len(9):
df=df.groupby(df[['UDH'].str[:8],'Original Sender ID','Received Date/Time'])['Body'].apply(' '.join).reset_index()
if df['UDH'].len(10):
df=df.groupby(df[['UDH'].str[:9],'Original Sender ID','Received Date/Time'])['Body'].apply(' '.join).reset_index()
if df['UDH'].len(11):
df=df.groupby(df[['UDH'].str[:10],'Original Sender ID','Received Date/Time'])['Body'].apply(' '.join).reset_index()
if df['UDH'].len(12):
df=df.groupby(df[['UDH'].str[:11],'Original Sender ID','Received Date/Time'])['Body'].apply(' '.join).reset_index()
我的csv文件包含列正文、接收日期/时间、原始发件人ID和UDH
现在UDH是主键。连接正文的方法是按接收日期/时间、原始发件人ID和UDH进行分组。然而,UDH有些只有8个字符长,有些只有12个字符长 这里有两个问题需要解决。更简单的方法是如何检查列中字符串的长度。正确的语法是
df['UDH'].str.len()==8
。但是,这种比较不会返回一个简单的bool
值,我们可以使用if
语句:它返回一系列bool
s,告诉我们列中每个元素的字符串长度是否为8<因此,代码>如果语句是错误的工具
相反,我们可以使用布尔序列作为索引,将数据帧拆分为行的子集。这将返回仅包含df
行的数据帧,其中df['UDH']
等于8:
rows_of_length_8 = df[df['UDH'].str.len() == 8]
还要注意的是,没有必要重复相同的逻辑这么多次。您可以使用循环:
for i in range(8, 12+1):
rows_of_length_i = df[df['UDH'].str.len() == i]
并使用
i-1
作为groupby中的slice参数。错误消息非常清楚:没有名为len
的Series
方法。因此,您会遇到类似df['UDH'].len(8)
这样的表达式的问题。你在这里写len
想要达到什么目的?嗨@ApproachingDarknessFish,谢谢你关注我的问题。我对熊猫很陌生。UDH列包含具有不同字符串数的不同值,最小字符数为8,最大字符数为12。我是否对len做了什么错误,或者应该是.str.len(8)?确实存在一个方法DataFrame.str.len
,但它不带参数df['UDH'].str.len()
将为您提供一个系列,其中包含df['UDH']
列中每个字符串的字符数。您是否正在尝试选择df
列中'UDH'
包含一定数量字符的行?@ApproachingDarknessFish是的,这正是我要查找的。你能给我举个例子吗?我试过这样做,对吗?df_i=df.groupby(df[df_i-1,'原始发件人ID','接收日期/时间')['Body'].apply(''.join).reset_index()很抱歉打扰您,我对python和pandas非常陌生,因此,速度有点慢this@SyafiqRosli如果没有关于程序和相关变量的更多信息,可能很难准确判断。@AMC更新了有关我的csv文件和目标的信息result@approchingDarknessFish如果您能提供反馈,我将不胜感激。