熊猫中条件语句的正确语法

时间:2019-06-27 17:20:46

标签: python pandas conditional-statements

我有一个条件性声明,我正在尝试在Anaconda的熊猫中锻炼。我已经将numpy安装为np。

我需要创建一个新的“文本”字段,如果现有的“截断的”字段为“假”,请在现有的“文本”字段中使用字符串。否则,(或者如果“截断”字段的值为“ True”,请在现有的“ extended_tweet.full_text”字段中使用字符串。

尝试按照此页面上的说明进行操作,但这不是直接的并行操作,因为我的“选择”是其他字段的值,而不是给定的字符串。 Pandas conditional creation of a series/dataframe column

这是我的代码:

conditions = [
    (df['truncated'] == 'False'),
    (df['truncated'] == 'True')]
choices = ['text'], ['extended_tweet.full_text']
df['Text'] = np.select(conditions, choices, default='null')

运行该命令后,所有“文本”值均为“空”

我已经尝试了'choices'选项代码的变体,并且认为问题是我在选择行中指示选项的方式(我在下面的示例代码使用给定的'string'值) 。但是我无法找出正确的方法来表明我想要新的“文本”字段中使用的声明字段中的字符串值。

任何帮助都将不胜感激。

第2部分:对下面的输入的响应:

谢谢。我对最少的可复制示例并不熟悉。

这是我想出的:

df5 = pd.DataFrame([["True", "Hello", "fine"], ["False", 'Howdy', 'good'], ["False", "Hi", "bien"]], columns=['truncated', 'text', 'extended_tweet.full_text'])
print(df5)
  truncated   text extended_tweet.full_text
0      True  Hello                     fine
1     False  Howdy                     good
2     False     Hi                     bien
conditions = [
    (df5['truncated'] == 'False'),
    (df5['truncated'] == 'True')]
choices = ['text'], ['extended_tweet.full_text']
df5['Text'] = np.select(conditions, choices, default='null')
df5['Text']
0    extended_tweet.full_text
1                        text
2                        text
Name: Text, dtype: object

但是,它返回的是'text'和'extended_tweet.full_test'字段的字符串,而不是这些列中的值。

我尝试了两个建议,但由于我处于编辑模式,所以现在看不到。但是这是我的结果:

我将“选择”行更改为:

choices = ['text', 'extended_tweet.full_text']

它返回了此错误消息,并且每个“文本”值均为“空”:

/anaconda3/lib/python3.7/site-packages/pandas/core/ops.py:1649: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
  result = method(y)

我也尝试过此版本:

conditions = [~df['truncated'],df['truncated']]
choices = ['text'], ['extended_tweet.full_text']
df['Text'] = np.select(conditions, choices, default='null')

但是像我的最小示例一样,它生成了'text'和'extended.tweet_full.text'字符串,而不是这些字段中的值。

0 个答案:

没有答案